#include <tree_sitter/parser.h>

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#define LANGUAGE_VERSION 14
#define STATE_COUNT 475
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 95
#define ALIAS_COUNT 1
#define TOKEN_COUNT 45
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 35
#define MAX_ALIAS_SEQUENCE_LENGTH 14
#define PRODUCTION_ID_COUNT 300

enum {
  sym_identifier = 1,
  sym_comment = 2,
  anon_sym_include = 3,
  anon_sym_category = 4,
  anon_sym_LBRACE = 5,
  anon_sym_RBRACE = 6,
  anon_sym_abstract = 7,
  anon_sym_asset = 8,
  anon_sym_extends = 9,
  anon_sym_let = 10,
  anon_sym_EQ = 11,
  anon_sym_AT = 12,
  sym_step_type = 13,
  anon_sym_action = 14,
  anon_sym_effect = 15,
  anon_sym_COMMA = 16,
  anon_sym_BANG = 17,
  anon_sym_SLASH_SLASH_BANG = 18,
  anon_sym_DOT = 19,
  anon_sym_LPAREN = 20,
  anon_sym_RPAREN = 21,
  anon_sym_LT_DASH = 22,
  anon_sym_PLUS_GT = 23,
  anon_sym_DASH_GT = 24,
  anon_sym_LBRACK = 25,
  anon_sym_RBRACK = 26,
  anon_sym_PLUS = 27,
  anon_sym_DASH = 28,
  anon_sym_STAR = 29,
  anon_sym_SLASH = 30,
  anon_sym_CARET = 31,
  anon_sym_BSLASH_SLASH = 32,
  anon_sym_SLASH_BSLASH = 33,
  anon_sym_POUND = 34,
  anon_sym_COLON = 35,
  anon_sym_associations = 36,
  anon_sym_LT_DASH_DASH = 37,
  anon_sym_DASH_DASH_GT = 38,
  anon_sym_DOT_DOT = 39,
  anon_sym_info = 40,
  sym_string = 41,
  sym_integer = 42,
  sym_float = 43,
  sym_cia = 44,
  sym_source_file = 45,
  sym_declaration = 46,
  sym_include_declaration = 47,
  sym_category_declaration = 48,
  sym_asset_declaration = 49,
  sym_asset_definition = 50,
  sym_asset_variable = 51,
  sym_attack_step = 52,
  sym_step_causal_mode = 53,
  sym_cias = 54,
  sym_detector = 55,
  sym_detector_name = 56,
  sym_detector_context = 57,
  sym_detector_context_reference = 58,
  sym_preconditions = 59,
  sym_reaching = 60,
  sym_ttc = 61,
  sym__ttc_expr = 62,
  sym__ttc_parenthesized = 63,
  sym__ttc_primary = 64,
  sym_ttc_distribution = 65,
  sym_ttc_binop = 66,
  sym_asset_expr = 67,
  sym__inline_asset_expr = 68,
  sym__asset_expr_primary = 69,
  sym_asset_variable_substitution = 70,
  sym_asset_expr_type = 71,
  sym_asset_expr_binop = 72,
  sym_asset_expr_unop = 73,
  sym_define_declaration = 74,
  sym_associations_declaration = 75,
  sym_association = 76,
  sym_multiplicity = 77,
  sym__multiplicity_atom = 78,
  sym_multiplicity_range = 79,
  sym_meta = 80,
  sym__number = 81,
  sym_star = 82,
  aux_sym_source_file_repeat1 = 83,
  aux_sym_category_declaration_repeat1 = 84,
  aux_sym_category_declaration_repeat2 = 85,
  aux_sym_asset_definition_repeat1 = 86,
  aux_sym_attack_step_repeat1 = 87,
  aux_sym_attack_step_repeat2 = 88,
  aux_sym_cias_repeat1 = 89,
  aux_sym_detector_name_repeat1 = 90,
  aux_sym_detector_context_repeat1 = 91,
  aux_sym_preconditions_repeat1 = 92,
  aux_sym_ttc_distribution_repeat1 = 93,
  aux_sym_associations_declaration_repeat1 = 94,
  alias_sym_meta_string = 95,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [sym_identifier] = "identifier",
  [sym_comment] = "comment",
  [anon_sym_include] = "include",
  [anon_sym_category] = "category",
  [anon_sym_LBRACE] = "{",
  [anon_sym_RBRACE] = "}",
  [anon_sym_abstract] = "abstract",
  [anon_sym_asset] = "asset",
  [anon_sym_extends] = "extends",
  [anon_sym_let] = "let",
  [anon_sym_EQ] = "=",
  [anon_sym_AT] = "@",
  [sym_step_type] = "step_type",
  [anon_sym_action] = "action",
  [anon_sym_effect] = "effect",
  [anon_sym_COMMA] = ",",
  [anon_sym_BANG] = "!",
  [anon_sym_SLASH_SLASH_BANG] = "//!",
  [anon_sym_DOT] = ".",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_LT_DASH] = "<-",
  [anon_sym_PLUS_GT] = "+>",
  [anon_sym_DASH_GT] = "->",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_PLUS] = "+",
  [anon_sym_DASH] = "-",
  [anon_sym_STAR] = "*",
  [anon_sym_SLASH] = "/",
  [anon_sym_CARET] = "^",
  [anon_sym_BSLASH_SLASH] = "\\/",
  [anon_sym_SLASH_BSLASH] = "/\\",
  [anon_sym_POUND] = "#",
  [anon_sym_COLON] = ":",
  [anon_sym_associations] = "associations",
  [anon_sym_LT_DASH_DASH] = "<--",
  [anon_sym_DASH_DASH_GT] = "-->",
  [anon_sym_DOT_DOT] = "..",
  [anon_sym_info] = "info",
  [sym_string] = "string",
  [sym_integer] = "integer",
  [sym_float] = "float",
  [sym_cia] = "cia",
  [sym_source_file] = "source_file",
  [sym_declaration] = "declaration",
  [sym_include_declaration] = "include_declaration",
  [sym_category_declaration] = "category_declaration",
  [sym_asset_declaration] = "asset_declaration",
  [sym_asset_definition] = "asset_definition",
  [sym_asset_variable] = "asset_variable",
  [sym_attack_step] = "attack_step",
  [sym_step_causal_mode] = "step_causal_mode",
  [sym_cias] = "cias",
  [sym_detector] = "detector",
  [sym_detector_name] = "detector_name",
  [sym_detector_context] = "detector_context",
  [sym_detector_context_reference] = "detector_context_reference",
  [sym_preconditions] = "preconditions",
  [sym_reaching] = "reaching",
  [sym_ttc] = "ttc",
  [sym__ttc_expr] = "_ttc_expr",
  [sym__ttc_parenthesized] = "_ttc_parenthesized",
  [sym__ttc_primary] = "_ttc_primary",
  [sym_ttc_distribution] = "ttc_distribution",
  [sym_ttc_binop] = "ttc_binop",
  [sym_asset_expr] = "asset_expr",
  [sym__inline_asset_expr] = "_inline_asset_expr",
  [sym__asset_expr_primary] = "_asset_expr_primary",
  [sym_asset_variable_substitution] = "asset_variable_substitution",
  [sym_asset_expr_type] = "asset_expr_type",
  [sym_asset_expr_binop] = "asset_expr_binop",
  [sym_asset_expr_unop] = "asset_expr_unop",
  [sym_define_declaration] = "define_declaration",
  [sym_associations_declaration] = "associations_declaration",
  [sym_association] = "association",
  [sym_multiplicity] = "multiplicity",
  [sym__multiplicity_atom] = "_multiplicity_atom",
  [sym_multiplicity_range] = "multiplicity_range",
  [sym_meta] = "meta",
  [sym__number] = "_number",
  [sym_star] = "star",
  [aux_sym_source_file_repeat1] = "source_file_repeat1",
  [aux_sym_category_declaration_repeat1] = "category_declaration_repeat1",
  [aux_sym_category_declaration_repeat2] = "category_declaration_repeat2",
  [aux_sym_asset_definition_repeat1] = "asset_definition_repeat1",
  [aux_sym_attack_step_repeat1] = "attack_step_repeat1",
  [aux_sym_attack_step_repeat2] = "attack_step_repeat2",
  [aux_sym_cias_repeat1] = "cias_repeat1",
  [aux_sym_detector_name_repeat1] = "detector_name_repeat1",
  [aux_sym_detector_context_repeat1] = "detector_context_repeat1",
  [aux_sym_preconditions_repeat1] = "preconditions_repeat1",
  [aux_sym_ttc_distribution_repeat1] = "ttc_distribution_repeat1",
  [aux_sym_associations_declaration_repeat1] = "associations_declaration_repeat1",
  [alias_sym_meta_string] = "meta_string",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [sym_identifier] = sym_identifier,
  [sym_comment] = sym_comment,
  [anon_sym_include] = anon_sym_include,
  [anon_sym_category] = anon_sym_category,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_abstract] = anon_sym_abstract,
  [anon_sym_asset] = anon_sym_asset,
  [anon_sym_extends] = anon_sym_extends,
  [anon_sym_let] = anon_sym_let,
  [anon_sym_EQ] = anon_sym_EQ,
  [anon_sym_AT] = anon_sym_AT,
  [sym_step_type] = sym_step_type,
  [anon_sym_action] = anon_sym_action,
  [anon_sym_effect] = anon_sym_effect,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_SLASH_SLASH_BANG] = anon_sym_SLASH_SLASH_BANG,
  [anon_sym_DOT] = anon_sym_DOT,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_LT_DASH] = anon_sym_LT_DASH,
  [anon_sym_PLUS_GT] = anon_sym_PLUS_GT,
  [anon_sym_DASH_GT] = anon_sym_DASH_GT,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [anon_sym_DASH] = anon_sym_DASH,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_SLASH] = anon_sym_SLASH,
  [anon_sym_CARET] = anon_sym_CARET,
  [anon_sym_BSLASH_SLASH] = anon_sym_BSLASH_SLASH,
  [anon_sym_SLASH_BSLASH] = anon_sym_SLASH_BSLASH,
  [anon_sym_POUND] = anon_sym_POUND,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_associations] = anon_sym_associations,
  [anon_sym_LT_DASH_DASH] = anon_sym_LT_DASH_DASH,
  [anon_sym_DASH_DASH_GT] = anon_sym_DASH_DASH_GT,
  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
  [anon_sym_info] = anon_sym_info,
  [sym_string] = sym_string,
  [sym_integer] = sym_integer,
  [sym_float] = sym_float,
  [sym_cia] = sym_cia,
  [sym_source_file] = sym_source_file,
  [sym_declaration] = sym_declaration,
  [sym_include_declaration] = sym_include_declaration,
  [sym_category_declaration] = sym_category_declaration,
  [sym_asset_declaration] = sym_asset_declaration,
  [sym_asset_definition] = sym_asset_definition,
  [sym_asset_variable] = sym_asset_variable,
  [sym_attack_step] = sym_attack_step,
  [sym_step_causal_mode] = sym_step_causal_mode,
  [sym_cias] = sym_cias,
  [sym_detector] = sym_detector,
  [sym_detector_name] = sym_detector_name,
  [sym_detector_context] = sym_detector_context,
  [sym_detector_context_reference] = sym_detector_context_reference,
  [sym_preconditions] = sym_preconditions,
  [sym_reaching] = sym_reaching,
  [sym_ttc] = sym_ttc,
  [sym__ttc_expr] = sym__ttc_expr,
  [sym__ttc_parenthesized] = sym__ttc_parenthesized,
  [sym__ttc_primary] = sym__ttc_primary,
  [sym_ttc_distribution] = sym_ttc_distribution,
  [sym_ttc_binop] = sym_ttc_binop,
  [sym_asset_expr] = sym_asset_expr,
  [sym__inline_asset_expr] = sym__inline_asset_expr,
  [sym__asset_expr_primary] = sym__asset_expr_primary,
  [sym_asset_variable_substitution] = sym_asset_variable_substitution,
  [sym_asset_expr_type] = sym_asset_expr_type,
  [sym_asset_expr_binop] = sym_asset_expr_binop,
  [sym_asset_expr_unop] = sym_asset_expr_unop,
  [sym_define_declaration] = sym_define_declaration,
  [sym_associations_declaration] = sym_associations_declaration,
  [sym_association] = sym_association,
  [sym_multiplicity] = sym_multiplicity,
  [sym__multiplicity_atom] = sym__multiplicity_atom,
  [sym_multiplicity_range] = sym_multiplicity_range,
  [sym_meta] = sym_meta,
  [sym__number] = sym__number,
  [sym_star] = sym_star,
  [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
  [aux_sym_category_declaration_repeat1] = aux_sym_category_declaration_repeat1,
  [aux_sym_category_declaration_repeat2] = aux_sym_category_declaration_repeat2,
  [aux_sym_asset_definition_repeat1] = aux_sym_asset_definition_repeat1,
  [aux_sym_attack_step_repeat1] = aux_sym_attack_step_repeat1,
  [aux_sym_attack_step_repeat2] = aux_sym_attack_step_repeat2,
  [aux_sym_cias_repeat1] = aux_sym_cias_repeat1,
  [aux_sym_detector_name_repeat1] = aux_sym_detector_name_repeat1,
  [aux_sym_detector_context_repeat1] = aux_sym_detector_context_repeat1,
  [aux_sym_preconditions_repeat1] = aux_sym_preconditions_repeat1,
  [aux_sym_ttc_distribution_repeat1] = aux_sym_ttc_distribution_repeat1,
  [aux_sym_associations_declaration_repeat1] = aux_sym_associations_declaration_repeat1,
  [alias_sym_meta_string] = alias_sym_meta_string,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [sym_identifier] = {
    .visible = true,
    .named = true,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_include] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_category] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_abstract] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_asset] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_extends] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_let] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AT] = {
    .visible = true,
    .named = false,
  },
  [sym_step_type] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_action] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_effect] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_SLASH_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BSLASH_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_BSLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_POUND] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_associations] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_DASH_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_DASH_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_info] = {
    .visible = true,
    .named = false,
  },
  [sym_string] = {
    .visible = true,
    .named = true,
  },
  [sym_integer] = {
    .visible = true,
    .named = true,
  },
  [sym_float] = {
    .visible = true,
    .named = true,
  },
  [sym_cia] = {
    .visible = true,
    .named = true,
  },
  [sym_source_file] = {
    .visible = true,
    .named = true,
  },
  [sym_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_include_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_category_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_definition] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_variable] = {
    .visible = true,
    .named = true,
  },
  [sym_attack_step] = {
    .visible = true,
    .named = true,
  },
  [sym_step_causal_mode] = {
    .visible = true,
    .named = true,
  },
  [sym_cias] = {
    .visible = true,
    .named = true,
  },
  [sym_detector] = {
    .visible = true,
    .named = true,
  },
  [sym_detector_name] = {
    .visible = true,
    .named = true,
  },
  [sym_detector_context] = {
    .visible = true,
    .named = true,
  },
  [sym_detector_context_reference] = {
    .visible = true,
    .named = true,
  },
  [sym_preconditions] = {
    .visible = true,
    .named = true,
  },
  [sym_reaching] = {
    .visible = true,
    .named = true,
  },
  [sym_ttc] = {
    .visible = true,
    .named = true,
  },
  [sym__ttc_expr] = {
    .visible = false,
    .named = true,
  },
  [sym__ttc_parenthesized] = {
    .visible = false,
    .named = true,
  },
  [sym__ttc_primary] = {
    .visible = false,
    .named = true,
  },
  [sym_ttc_distribution] = {
    .visible = true,
    .named = true,
  },
  [sym_ttc_binop] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__inline_asset_expr] = {
    .visible = false,
    .named = true,
  },
  [sym__asset_expr_primary] = {
    .visible = false,
    .named = true,
  },
  [sym_asset_variable_substitution] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr_type] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr_binop] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr_unop] = {
    .visible = true,
    .named = true,
  },
  [sym_define_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_associations_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_association] = {
    .visible = true,
    .named = true,
  },
  [sym_multiplicity] = {
    .visible = true,
    .named = true,
  },
  [sym__multiplicity_atom] = {
    .visible = false,
    .named = true,
  },
  [sym_multiplicity_range] = {
    .visible = true,
    .named = true,
  },
  [sym_meta] = {
    .visible = true,
    .named = true,
  },
  [sym__number] = {
    .visible = false,
    .named = true,
  },
  [sym_star] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_source_file_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_category_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_category_declaration_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_asset_definition_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_attack_step_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_attack_step_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_cias_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_detector_name_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_detector_context_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_preconditions_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_ttc_distribution_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_associations_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [alias_sym_meta_string] = {
    .visible = true,
    .named = true,
  },
};

enum {
  field_assets = 1,
  field_body = 2,
  field_causal_mode = 3,
  field_cias = 4,
  field_condition = 5,
  field_context = 6,
  field_ctx_step = 7,
  field_detector = 8,
  field_end = 9,
  field_expression = 10,
  field_extends = 11,
  field_file = 12,
  field_id = 13,
  field_info = 14,
  field_left = 15,
  field_left_field_id = 16,
  field_left_id = 17,
  field_left_mult = 18,
  field_meta = 19,
  field_name = 20,
  field_operator = 21,
  field_preconditions = 22,
  field_reaches = 23,
  field_right = 24,
  field_right_field_id = 25,
  field_right_id = 26,
  field_right_mult = 27,
  field_start = 28,
  field_step_type = 29,
  field_tag = 30,
  field_ttc = 31,
  field_type = 32,
  field_type_id = 33,
  field_value = 34,
  field_values = 35,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_assets] = "assets",
  [field_body] = "body",
  [field_causal_mode] = "causal_mode",
  [field_cias] = "cias",
  [field_condition] = "condition",
  [field_context] = "context",
  [field_ctx_step] = "ctx_step",
  [field_detector] = "detector",
  [field_end] = "end",
  [field_expression] = "expression",
  [field_extends] = "extends",
  [field_file] = "file",
  [field_id] = "id",
  [field_info] = "info",
  [field_left] = "left",
  [field_left_field_id] = "left_field_id",
  [field_left_id] = "left_id",
  [field_left_mult] = "left_mult",
  [field_meta] = "meta",
  [field_name] = "name",
  [field_operator] = "operator",
  [field_preconditions] = "preconditions",
  [field_reaches] = "reaches",
  [field_right] = "right",
  [field_right_field_id] = "right_field_id",
  [field_right_id] = "right_id",
  [field_right_mult] = "right_mult",
  [field_start] = "start",
  [field_step_type] = "step_type",
  [field_tag] = "tag",
  [field_ttc] = "ttc",
  [field_type] = "type",
  [field_type_id] = "type_id",
  [field_value] = "value",
  [field_values] = "values",
};

static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 1},
  [2] = {.index = 1, .length = 1},
  [3] = {.index = 2, .length = 2},
  [4] = {.index = 4, .length = 2},
  [5] = {.index = 6, .length = 2},
  [6] = {.index = 8, .length = 2},
  [7] = {.index = 10, .length = 3},
  [8] = {.index = 13, .length = 1},
  [9] = {.index = 14, .length = 2},
  [10] = {.index = 16, .length = 2},
  [11] = {.index = 18, .length = 2},
  [12] = {.index = 20, .length = 2},
  [13] = {.index = 22, .length = 3},
  [14] = {.index = 25, .length = 3},
  [15] = {.index = 28, .length = 3},
  [16] = {.index = 31, .length = 3},
  [17] = {.index = 34, .length = 3},
  [18] = {.index = 37, .length = 3},
  [19] = {.index = 40, .length = 3},
  [20] = {.index = 43, .length = 3},
  [21] = {.index = 46, .length = 3},
  [22] = {.index = 49, .length = 2},
  [23] = {.index = 51, .length = 3},
  [24] = {.index = 54, .length = 3},
  [25] = {.index = 57, .length = 1},
  [26] = {.index = 58, .length = 1},
  [27] = {.index = 59, .length = 2},
  [28] = {.index = 61, .length = 4},
  [29] = {.index = 65, .length = 4},
  [30] = {.index = 69, .length = 4},
  [31] = {.index = 73, .length = 4},
  [32] = {.index = 77, .length = 4},
  [33] = {.index = 81, .length = 4},
  [34] = {.index = 85, .length = 4},
  [35] = {.index = 89, .length = 4},
  [36] = {.index = 93, .length = 4},
  [37] = {.index = 97, .length = 4},
  [38] = {.index = 101, .length = 4},
  [39] = {.index = 105, .length = 4},
  [40] = {.index = 109, .length = 4},
  [41] = {.index = 113, .length = 4},
  [42] = {.index = 117, .length = 4},
  [43] = {.index = 121, .length = 4},
  [44] = {.index = 125, .length = 4},
  [45] = {.index = 129, .length = 4},
  [46] = {.index = 133, .length = 4},
  [47] = {.index = 137, .length = 4},
  [48] = {.index = 141, .length = 4},
  [49] = {.index = 145, .length = 4},
  [50] = {.index = 149, .length = 4},
  [51] = {.index = 153, .length = 4},
  [52] = {.index = 157, .length = 4},
  [53] = {.index = 161, .length = 2},
  [54] = {.index = 163, .length = 5},
  [55] = {.index = 168, .length = 2},
  [56] = {.index = 170, .length = 2},
  [57] = {.index = 172, .length = 2},
  [58] = {.index = 174, .length = 2},
  [59] = {.index = 176, .length = 3},
  [60] = {.index = 179, .length = 5},
  [61] = {.index = 184, .length = 5},
  [62] = {.index = 189, .length = 5},
  [63] = {.index = 194, .length = 5},
  [64] = {.index = 199, .length = 5},
  [65] = {.index = 204, .length = 5},
  [66] = {.index = 209, .length = 5},
  [67] = {.index = 214, .length = 5},
  [68] = {.index = 219, .length = 5},
  [69] = {.index = 224, .length = 5},
  [70] = {.index = 229, .length = 5},
  [71] = {.index = 234, .length = 5},
  [72] = {.index = 239, .length = 5},
  [73] = {.index = 244, .length = 5},
  [74] = {.index = 249, .length = 5},
  [75] = {.index = 254, .length = 5},
  [76] = {.index = 259, .length = 5},
  [77] = {.index = 264, .length = 5},
  [78] = {.index = 269, .length = 5},
  [79] = {.index = 274, .length = 5},
  [80] = {.index = 279, .length = 5},
  [81] = {.index = 284, .length = 5},
  [82] = {.index = 289, .length = 5},
  [83] = {.index = 294, .length = 5},
  [84] = {.index = 299, .length = 5},
  [85] = {.index = 304, .length = 5},
  [86] = {.index = 309, .length = 5},
  [87] = {.index = 314, .length = 5},
  [88] = {.index = 319, .length = 5},
  [89] = {.index = 324, .length = 5},
  [90] = {.index = 329, .length = 5},
  [91] = {.index = 334, .length = 5},
  [92] = {.index = 339, .length = 5},
  [93] = {.index = 344, .length = 5},
  [94] = {.index = 349, .length = 5},
  [95] = {.index = 354, .length = 5},
  [96] = {.index = 359, .length = 5},
  [97] = {.index = 364, .length = 1},
  [98] = {.index = 365, .length = 3},
  [99] = {.index = 368, .length = 6},
  [100] = {.index = 374, .length = 6},
  [101] = {.index = 380, .length = 6},
  [102] = {.index = 386, .length = 6},
  [103] = {.index = 392, .length = 6},
  [104] = {.index = 398, .length = 2},
  [105] = {.index = 400, .length = 3},
  [106] = {.index = 403, .length = 3},
  [107] = {.index = 406, .length = 3},
  [108] = {.index = 409, .length = 6},
  [109] = {.index = 415, .length = 6},
  [110] = {.index = 421, .length = 6},
  [111] = {.index = 427, .length = 6},
  [112] = {.index = 433, .length = 6},
  [113] = {.index = 439, .length = 6},
  [114] = {.index = 445, .length = 6},
  [115] = {.index = 451, .length = 6},
  [116] = {.index = 457, .length = 6},
  [117] = {.index = 463, .length = 6},
  [118] = {.index = 469, .length = 6},
  [119] = {.index = 475, .length = 6},
  [120] = {.index = 481, .length = 6},
  [121] = {.index = 487, .length = 6},
  [122] = {.index = 493, .length = 6},
  [123] = {.index = 499, .length = 6},
  [124] = {.index = 505, .length = 6},
  [125] = {.index = 511, .length = 6},
  [126] = {.index = 517, .length = 6},
  [127] = {.index = 523, .length = 6},
  [128] = {.index = 529, .length = 6},
  [129] = {.index = 535, .length = 6},
  [130] = {.index = 541, .length = 6},
  [131] = {.index = 547, .length = 6},
  [132] = {.index = 553, .length = 6},
  [133] = {.index = 559, .length = 6},
  [134] = {.index = 565, .length = 6},
  [135] = {.index = 571, .length = 6},
  [136] = {.index = 577, .length = 6},
  [137] = {.index = 583, .length = 6},
  [138] = {.index = 589, .length = 6},
  [139] = {.index = 595, .length = 6},
  [140] = {.index = 601, .length = 6},
  [141] = {.index = 607, .length = 6},
  [142] = {.index = 613, .length = 6},
  [143] = {.index = 619, .length = 6},
  [144] = {.index = 625, .length = 6},
  [145] = {.index = 631, .length = 2},
  [146] = {.index = 633, .length = 7},
  [147] = {.index = 640, .length = 7},
  [148] = {.index = 647, .length = 7},
  [149] = {.index = 654, .length = 7},
  [150] = {.index = 661, .length = 7},
  [151] = {.index = 668, .length = 7},
  [152] = {.index = 675, .length = 7},
  [153] = {.index = 682, .length = 7},
  [154] = {.index = 689, .length = 7},
  [155] = {.index = 696, .length = 7},
  [156] = {.index = 703, .length = 4},
  [157] = {.index = 707, .length = 2},
  [158] = {.index = 709, .length = 7},
  [159] = {.index = 716, .length = 7},
  [160] = {.index = 723, .length = 7},
  [161] = {.index = 730, .length = 7},
  [162] = {.index = 737, .length = 7},
  [163] = {.index = 744, .length = 7},
  [164] = {.index = 751, .length = 7},
  [165] = {.index = 758, .length = 7},
  [166] = {.index = 765, .length = 7},
  [167] = {.index = 772, .length = 7},
  [168] = {.index = 779, .length = 7},
  [169] = {.index = 786, .length = 7},
  [170] = {.index = 793, .length = 7},
  [171] = {.index = 800, .length = 7},
  [172] = {.index = 807, .length = 7},
  [173] = {.index = 814, .length = 7},
  [174] = {.index = 821, .length = 7},
  [175] = {.index = 828, .length = 7},
  [176] = {.index = 835, .length = 7},
  [177] = {.index = 842, .length = 7},
  [178] = {.index = 849, .length = 7},
  [179] = {.index = 856, .length = 7},
  [180] = {.index = 863, .length = 7},
  [181] = {.index = 870, .length = 7},
  [182] = {.index = 877, .length = 7},
  [183] = {.index = 884, .length = 7},
  [184] = {.index = 891, .length = 7},
  [185] = {.index = 898, .length = 7},
  [186] = {.index = 905, .length = 7},
  [187] = {.index = 912, .length = 7},
  [188] = {.index = 919, .length = 7},
  [189] = {.index = 926, .length = 7},
  [190] = {.index = 933, .length = 8},
  [191] = {.index = 941, .length = 8},
  [192] = {.index = 949, .length = 8},
  [193] = {.index = 957, .length = 8},
  [194] = {.index = 965, .length = 8},
  [195] = {.index = 973, .length = 8},
  [196] = {.index = 981, .length = 8},
  [197] = {.index = 989, .length = 8},
  [198] = {.index = 997, .length = 8},
  [199] = {.index = 1005, .length = 8},
  [200] = {.index = 1013, .length = 3},
  [201] = {.index = 1016, .length = 8},
  [202] = {.index = 1024, .length = 8},
  [203] = {.index = 1032, .length = 8},
  [204] = {.index = 1040, .length = 8},
  [205] = {.index = 1048, .length = 8},
  [206] = {.index = 1056, .length = 8},
  [207] = {.index = 1064, .length = 8},
  [208] = {.index = 1072, .length = 8},
  [209] = {.index = 1080, .length = 8},
  [210] = {.index = 1088, .length = 8},
  [211] = {.index = 1096, .length = 8},
  [212] = {.index = 1104, .length = 8},
  [213] = {.index = 1112, .length = 8},
  [214] = {.index = 1120, .length = 8},
  [215] = {.index = 1128, .length = 8},
  [216] = {.index = 1136, .length = 8},
  [217] = {.index = 1144, .length = 8},
  [218] = {.index = 1152, .length = 8},
  [219] = {.index = 1160, .length = 8},
  [220] = {.index = 1168, .length = 8},
  [221] = {.index = 1176, .length = 8},
  [222] = {.index = 1184, .length = 8},
  [223] = {.index = 1192, .length = 8},
  [224] = {.index = 1200, .length = 8},
  [225] = {.index = 1208, .length = 8},
  [226] = {.index = 1216, .length = 8},
  [227] = {.index = 1224, .length = 8},
  [228] = {.index = 1232, .length = 8},
  [229] = {.index = 1240, .length = 8},
  [230] = {.index = 1248, .length = 8},
  [231] = {.index = 1256, .length = 8},
  [232] = {.index = 1264, .length = 8},
  [233] = {.index = 1272, .length = 9},
  [234] = {.index = 1281, .length = 9},
  [235] = {.index = 1290, .length = 9},
  [236] = {.index = 1299, .length = 9},
  [237] = {.index = 1308, .length = 9},
  [238] = {.index = 1317, .length = 9},
  [239] = {.index = 1326, .length = 9},
  [240] = {.index = 1335, .length = 9},
  [241] = {.index = 1344, .length = 9},
  [242] = {.index = 1353, .length = 9},
  [243] = {.index = 1362, .length = 9},
  [244] = {.index = 1371, .length = 9},
  [245] = {.index = 1380, .length = 9},
  [246] = {.index = 1389, .length = 9},
  [247] = {.index = 1398, .length = 9},
  [248] = {.index = 1407, .length = 9},
  [249] = {.index = 1416, .length = 9},
  [250] = {.index = 1425, .length = 9},
  [251] = {.index = 1434, .length = 9},
  [252] = {.index = 1443, .length = 9},
  [253] = {.index = 1452, .length = 9},
  [254] = {.index = 1461, .length = 9},
  [255] = {.index = 1470, .length = 9},
  [256] = {.index = 1479, .length = 9},
  [257] = {.index = 1488, .length = 9},
  [258] = {.index = 1497, .length = 9},
  [259] = {.index = 1506, .length = 9},
  [260] = {.index = 1515, .length = 9},
  [261] = {.index = 1524, .length = 9},
  [262] = {.index = 1533, .length = 9},
  [263] = {.index = 1542, .length = 9},
  [264] = {.index = 1551, .length = 9},
  [265] = {.index = 1560, .length = 9},
  [266] = {.index = 1569, .length = 9},
  [267] = {.index = 1578, .length = 9},
  [268] = {.index = 1587, .length = 9},
  [269] = {.index = 1596, .length = 7},
  [270] = {.index = 1603, .length = 10},
  [271] = {.index = 1613, .length = 10},
  [272] = {.index = 1623, .length = 10},
  [273] = {.index = 1633, .length = 10},
  [274] = {.index = 1643, .length = 10},
  [275] = {.index = 1653, .length = 10},
  [276] = {.index = 1663, .length = 10},
  [277] = {.index = 1673, .length = 10},
  [278] = {.index = 1683, .length = 10},
  [279] = {.index = 1693, .length = 10},
  [280] = {.index = 1703, .length = 10},
  [281] = {.index = 1713, .length = 10},
  [282] = {.index = 1723, .length = 10},
  [283] = {.index = 1733, .length = 10},
  [284] = {.index = 1743, .length = 10},
  [285] = {.index = 1753, .length = 10},
  [286] = {.index = 1763, .length = 10},
  [287] = {.index = 1773, .length = 10},
  [288] = {.index = 1783, .length = 10},
  [289] = {.index = 1793, .length = 10},
  [290] = {.index = 1803, .length = 10},
  [291] = {.index = 1813, .length = 8},
  [292] = {.index = 1821, .length = 11},
  [293] = {.index = 1832, .length = 11},
  [294] = {.index = 1843, .length = 11},
  [295] = {.index = 1854, .length = 11},
  [296] = {.index = 1865, .length = 11},
  [297] = {.index = 1876, .length = 11},
  [298] = {.index = 1887, .length = 11},
  [299] = {.index = 1898, .length = 12},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_file, 1},
  [1] =
    {field_id, 1},
  [2] =
    {field_id, 1},
    {field_value, 3},
  [4] =
    {field_assets, 3},
    {field_id, 1},
  [6] =
    {field_id, 1},
    {field_meta, 2},
  [8] =
    {field_id, 0},
    {field_info, 3},
  [10] =
    {field_assets, 4},
    {field_id, 1},
    {field_meta, 2},
  [13] =
    {field_id, 2},
  [14] =
    {field_id, 1},
    {field_step_type, 0},
  [16] =
    {field_body, 3},
    {field_id, 1},
  [18] =
    {field_body, 4},
    {field_id, 2},
  [20] =
    {field_id, 2},
    {field_meta, 3},
  [22] =
    {field_id, 1},
    {field_preconditions, 2},
    {field_step_type, 0},
  [25] =
    {field_id, 1},
    {field_reaches, 2},
    {field_step_type, 0},
  [28] =
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 2},
  [31] =
    {field_id, 1},
    {field_meta, 2},
    {field_step_type, 0},
  [34] =
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [37] =
    {field_detector, 2},
    {field_id, 1},
    {field_step_type, 0},
  [40] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_step_type, 0},
  [43] =
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
  [46] =
    {field_body, 4},
    {field_id, 1},
    {field_meta, 2},
  [49] =
    {field_end, 2},
    {field_start, 0},
  [51] =
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
  [54] =
    {field_body, 5},
    {field_id, 2},
    {field_meta, 3},
  [57] =
    {field_context, 1},
  [58] =
    {field_condition, 1},
  [59] =
    {field_operator, 0},
    {field_reaches, 1},
  [61] =
    {field_id, 1},
    {field_preconditions, 2},
    {field_reaches, 3},
    {field_step_type, 0},
  [65] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [69] =
    {field_id, 1},
    {field_reaches, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [73] =
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [77] =
    {field_detector, 3},
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 2},
  [81] =
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 3},
    {field_step_type, 0},
  [85] =
    {field_id, 1},
    {field_meta, 2},
    {field_reaches, 3},
    {field_step_type, 0},
  [89] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_step_type, 0},
  [93] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [97] =
    {field_id, 1},
    {field_reaches, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [101] =
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [105] =
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [109] =
    {field_detector, 3},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [113] =
    {field_detector, 2},
    {field_id, 1},
    {field_preconditions, 3},
    {field_step_type, 0},
  [117] =
    {field_detector, 2},
    {field_id, 1},
    {field_reaches, 3},
    {field_step_type, 0},
  [121] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 3},
    {field_step_type, 0},
  [125] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_reaches, 3},
    {field_step_type, 0},
  [129] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_step_type, 0},
    {field_ttc, 3},
  [133] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 3},
    {field_step_type, 0},
  [137] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
  [141] =
    {field_causal_mode, 1},
    {field_detector, 3},
    {field_id, 2},
    {field_step_type, 0},
  [145] =
    {field_body, 5},
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
  [149] =
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
    {field_meta, 4},
  [153] =
    {field_body, 6},
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
  [157] =
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
    {field_meta, 5},
  [161] =
    {field_expression, 0},
    {field_operator, 1},
  [163] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_step_type, 0},
  [168] =
    {field_context, 2},
    {field_name, 1},
  [170] =
    {field_context, 1},
    {field_type, 2},
  [172] =
    {field_context, 1},
    {field_ttc, 2},
  [174] =
    {field_condition, 1},
    {field_condition, 2},
  [176] =
    {field_operator, 0},
    {field_reaches, 1},
    {field_reaches, 2},
  [179] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [184] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [189] =
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [194] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [199] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [204] =
    {field_detector, 3},
    {field_id, 1},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [209] =
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
  [214] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 4},
    {field_step_type, 0},
  [219] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_reaches, 4},
    {field_step_type, 0},
  [224] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [229] =
    {field_id, 1},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [234] =
    {field_id, 1},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [239] =
    {field_id, 1},
    {field_meta, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [244] =
    {field_detector, 4},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [249] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [254] =
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [259] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [264] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [269] =
    {field_detector, 3},
    {field_id, 1},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [274] =
    {field_detector, 2},
    {field_id, 1},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
  [279] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
  [284] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_ttc, 3},
  [289] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 3},
  [294] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_step_type, 0},
    {field_ttc, 3},
  [299] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_step_type, 0},
    {field_ttc, 3},
  [304] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_step_type, 0},
  [309] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 3},
    {field_reaches, 4},
    {field_step_type, 0},
  [314] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_meta, 3},
    {field_step_type, 0},
  [319] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 3},
  [324] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 3},
  [329] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [334] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_step_type, 0},
    {field_tag, 3},
  [339] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
  [344] =
    {field_causal_mode, 1},
    {field_detector, 3},
    {field_id, 2},
    {field_preconditions, 4},
    {field_step_type, 0},
  [349] =
    {field_causal_mode, 1},
    {field_detector, 3},
    {field_id, 2},
    {field_reaches, 4},
    {field_step_type, 0},
  [354] =
    {field_body, 6},
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
    {field_meta, 4},
  [359] =
    {field_body, 7},
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
    {field_meta, 5},
  [364] =
    {field_id, 0},
  [365] =
    {field_left, 0},
    {field_operator, 1},
    {field_right, 2},
  [368] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_step_type, 0},
  [374] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_reaches, 5},
    {field_step_type, 0},
  [380] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 5},
  [386] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_step_type, 0},
  [392] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_step_type, 0},
  [398] =
    {field_ctx_step, 0},
    {field_id, 1},
  [400] =
    {field_context, 2},
    {field_name, 1},
    {field_type, 3},
  [403] =
    {field_context, 2},
    {field_name, 1},
    {field_ttc, 3},
  [406] =
    {field_context, 1},
    {field_ttc, 3},
    {field_type, 2},
  [409] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [415] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [421] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [427] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [433] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
  [439] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [445] =
    {field_id, 1},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [451] =
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [457] =
    {field_id, 1},
    {field_meta, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [463] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [469] =
    {field_detector, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [475] =
    {field_detector, 4},
    {field_id, 1},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [481] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [487] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [493] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [499] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [505] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_step_type, 0},
  [511] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 3},
  [517] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_ttc, 3},
  [523] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 3},
  [529] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_step_type, 0},
    {field_ttc, 3},
  [535] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_ttc, 3},
  [541] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 3},
  [547] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
  [553] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_step_type, 0},
  [559] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_meta, 3},
    {field_reaches, 5},
    {field_step_type, 0},
  [565] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 3},
  [571] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [577] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [583] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 5},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [589] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [595] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 3},
  [601] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 3},
  [607] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_step_type, 0},
    {field_tag, 3},
  [613] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 3},
  [619] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 3},
  [625] =
    {field_causal_mode, 1},
    {field_detector, 3},
    {field_id, 2},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
  [631] =
    {field_expression, 0},
    {field_type_id, 2},
  [633] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
  [640] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [647] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [654] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [661] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 5},
  [668] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 6},
    {field_step_type, 0},
  [675] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_reaches, 6},
    {field_step_type, 0},
  [682] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_step_type, 0},
  [689] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_step_type, 0},
  [696] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_reaches, 6},
    {field_step_type, 0},
  [703] =
    {field_context, 2},
    {field_name, 1},
    {field_ttc, 4},
    {field_type, 3},
  [707] =
    {field_id, 0},
    {field_values, 2},
  [709] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 2},
  [716] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [723] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [730] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [737] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [744] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [751] =
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [758] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [765] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [772] =
    {field_detector, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [779] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [786] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_preconditions, 6},
    {field_step_type, 0},
  [793] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_reaches, 6},
    {field_step_type, 0},
  [800] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_step_type, 0},
    {field_ttc, 6},
  [807] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 6},
    {field_step_type, 0},
  [814] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 2},
    {field_step_type, 0},
  [821] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 3},
  [828] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_ttc, 3},
  [835] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 3},
  [842] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 3},
  [849] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
  [856] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
  [863] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [870] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 5},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [877] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [884] =
    {field_causal_mode, 1},
    {field_detector, 6},
    {field_id, 2},
    {field_meta, 5},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [891] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [898] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [905] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 3},
  [912] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 3},
  [919] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 3},
  [926] =
    {field_causal_mode, 1},
    {field_detector, 4},
    {field_id, 2},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 3},
  [933] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [941] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [949] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [957] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [965] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [973] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [981] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
  [989] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 7},
    {field_step_type, 0},
  [997] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_reaches, 7},
    {field_step_type, 0},
  [1005] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
  [1013] =
    {field_id, 0},
    {field_values, 2},
    {field_values, 3},
  [1016] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [1024] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1032] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1040] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1048] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1056] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [1064] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [1072] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [1080] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [1088] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [1096] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [1104] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
  [1112] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_ttc, 6},
  [1120] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 6},
  [1128] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 7},
    {field_step_type, 0},
    {field_ttc, 6},
  [1136] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_step_type, 0},
    {field_ttc, 6},
  [1144] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_step_type, 0},
  [1152] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 6},
    {field_reaches, 7},
    {field_step_type, 0},
  [1160] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_meta, 6},
    {field_step_type, 0},
  [1168] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 2},
    {field_preconditions, 7},
    {field_step_type, 0},
  [1176] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 2},
    {field_reaches, 7},
    {field_step_type, 0},
  [1184] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 3},
  [1192] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 3},
  [1200] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 3},
  [1208] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1216] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 7},
    {field_step_type, 0},
    {field_tag, 3},
  [1224] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 7},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
  [1232] =
    {field_causal_mode, 1},
    {field_id, 2},
    {field_meta, 5},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [1240] =
    {field_causal_mode, 1},
    {field_detector, 6},
    {field_id, 2},
    {field_meta, 5},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [1248] =
    {field_causal_mode, 1},
    {field_detector, 6},
    {field_id, 2},
    {field_meta, 5},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [1256] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [1264] =
    {field_causal_mode, 1},
    {field_detector, 5},
    {field_id, 2},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 3},
  [1272] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [1281] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [1290] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [1299] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [1308] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
  [1317] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1326] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1335] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1344] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1353] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1362] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1371] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [1380] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [1389] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [1398] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [1407] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 6},
  [1416] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_ttc, 6},
  [1425] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 6},
  [1434] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_step_type, 0},
    {field_ttc, 6},
  [1443] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_ttc, 6},
  [1452] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 6},
  [1461] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
  [1470] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_step_type, 0},
  [1479] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_meta, 6},
    {field_reaches, 8},
    {field_step_type, 0},
  [1488] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 2},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
  [1497] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 3},
  [1506] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1515] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1524] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 8},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1533] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1542] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 3},
  [1551] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 3},
  [1560] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_step_type, 0},
    {field_tag, 3},
  [1569] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 7},
    {field_id, 2},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 3},
  [1578] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 7},
    {field_id, 2},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 3},
  [1587] =
    {field_causal_mode, 1},
    {field_detector, 6},
    {field_id, 2},
    {field_meta, 5},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 4},
  [1596] =
    {field_id, 6},
    {field_left_field_id, 2},
    {field_left_id, 0},
    {field_left_mult, 4},
    {field_right_field_id, 10},
    {field_right_id, 12},
    {field_right_mult, 8},
  [1603] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_ttc, 5},
  [1613] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1623] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1633] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1643] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1653] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
  [1663] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_ttc, 6},
  [1673] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_step_type, 0},
    {field_ttc, 6},
  [1683] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_ttc, 6},
  [1693] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_ttc, 6},
  [1703] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 2},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
  [1713] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1723] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 8},
    {field_preconditions, 9},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1733] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1743] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 9},
    {field_id, 2},
    {field_meta, 8},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1753] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_preconditions, 9},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1763] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1773] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 3},
  [1783] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_step_type, 0},
    {field_tag, 3},
  [1793] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 3},
  [1803] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 7},
    {field_id, 2},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 3},
  [1813] =
    {field_id, 6},
    {field_left_field_id, 2},
    {field_left_id, 0},
    {field_left_mult, 4},
    {field_meta, 13},
    {field_right_field_id, 10},
    {field_right_id, 12},
    {field_right_mult, 8},
  [1821] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [1832] =
    {field_causal_mode, 1},
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_ttc, 6},
  [1843] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_id, 2},
    {field_meta, 8},
    {field_preconditions, 9},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1854] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 9},
    {field_id, 2},
    {field_meta, 8},
    {field_preconditions, 10},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1865] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 9},
    {field_id, 2},
    {field_meta, 8},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1876] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_preconditions, 9},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
  [1887] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 8},
    {field_id, 2},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_tag, 3},
  [1898] =
    {field_causal_mode, 1},
    {field_cias, 4},
    {field_cias, 5},
    {field_cias, 6},
    {field_detector, 9},
    {field_id, 2},
    {field_meta, 8},
    {field_preconditions, 10},
    {field_reaches, 11},
    {field_step_type, 0},
    {field_tag, 3},
    {field_ttc, 7},
};

static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
  [0] = {0},
  [6] = {
    [3] = alias_sym_meta_string,
  },
};

static const uint16_t ts_non_terminal_alias_map[] = {
  0,
};

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 3,
  [4] = 4,
  [5] = 5,
  [6] = 6,
  [7] = 7,
  [8] = 8,
  [9] = 9,
  [10] = 10,
  [11] = 11,
  [12] = 12,
  [13] = 13,
  [14] = 14,
  [15] = 15,
  [16] = 16,
  [17] = 17,
  [18] = 18,
  [19] = 19,
  [20] = 20,
  [21] = 21,
  [22] = 22,
  [23] = 23,
  [24] = 24,
  [25] = 25,
  [26] = 26,
  [27] = 27,
  [28] = 28,
  [29] = 29,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 34,
  [35] = 35,
  [36] = 36,
  [37] = 37,
  [38] = 38,
  [39] = 39,
  [40] = 40,
  [41] = 41,
  [42] = 42,
  [43] = 43,
  [44] = 44,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 51,
  [52] = 52,
  [53] = 53,
  [54] = 54,
  [55] = 55,
  [56] = 56,
  [57] = 57,
  [58] = 58,
  [59] = 59,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 66,
  [67] = 67,
  [68] = 68,
  [69] = 69,
  [70] = 70,
  [71] = 71,
  [72] = 72,
  [73] = 73,
  [74] = 74,
  [75] = 75,
  [76] = 76,
  [77] = 77,
  [78] = 78,
  [79] = 79,
  [80] = 80,
  [81] = 81,
  [82] = 82,
  [83] = 83,
  [84] = 84,
  [85] = 85,
  [86] = 86,
  [87] = 87,
  [88] = 88,
  [89] = 89,
  [90] = 90,
  [91] = 91,
  [92] = 92,
  [93] = 82,
  [94] = 94,
  [95] = 95,
  [96] = 96,
  [97] = 97,
  [98] = 98,
  [99] = 99,
  [100] = 100,
  [101] = 101,
  [102] = 102,
  [103] = 103,
  [104] = 97,
  [105] = 101,
  [106] = 106,
  [107] = 106,
  [108] = 34,
  [109] = 100,
  [110] = 110,
  [111] = 111,
  [112] = 112,
  [113] = 113,
  [114] = 114,
  [115] = 115,
  [116] = 116,
  [117] = 117,
  [118] = 118,
  [119] = 119,
  [120] = 120,
  [121] = 121,
  [122] = 122,
  [123] = 123,
  [124] = 124,
  [125] = 125,
  [126] = 126,
  [127] = 69,
  [128] = 128,
  [129] = 129,
  [130] = 130,
  [131] = 37,
  [132] = 132,
  [133] = 41,
  [134] = 40,
  [135] = 39,
  [136] = 38,
  [137] = 36,
  [138] = 138,
  [139] = 138,
  [140] = 140,
  [141] = 141,
  [142] = 142,
  [143] = 143,
  [144] = 144,
  [145] = 145,
  [146] = 146,
  [147] = 147,
  [148] = 148,
  [149] = 149,
  [150] = 150,
  [151] = 151,
  [152] = 152,
  [153] = 153,
  [154] = 154,
  [155] = 155,
  [156] = 156,
  [157] = 157,
  [158] = 158,
  [159] = 159,
  [160] = 160,
  [161] = 161,
  [162] = 162,
  [163] = 163,
  [164] = 164,
  [165] = 165,
  [166] = 166,
  [167] = 167,
  [168] = 168,
  [169] = 169,
  [170] = 142,
  [171] = 171,
  [172] = 172,
  [173] = 173,
  [174] = 174,
  [175] = 175,
  [176] = 176,
  [177] = 177,
  [178] = 178,
  [179] = 179,
  [180] = 180,
  [181] = 181,
  [182] = 182,
  [183] = 183,
  [184] = 184,
  [185] = 185,
  [186] = 186,
  [187] = 187,
  [188] = 188,
  [189] = 189,
  [190] = 190,
  [191] = 191,
  [192] = 192,
  [193] = 193,
  [194] = 194,
  [195] = 195,
  [196] = 196,
  [197] = 197,
  [198] = 198,
  [199] = 199,
  [200] = 200,
  [201] = 201,
  [202] = 202,
  [203] = 203,
  [204] = 204,
  [205] = 205,
  [206] = 206,
  [207] = 207,
  [208] = 208,
  [209] = 209,
  [210] = 210,
  [211] = 211,
  [212] = 212,
  [213] = 213,
  [214] = 214,
  [215] = 215,
  [216] = 216,
  [217] = 217,
  [218] = 218,
  [219] = 219,
  [220] = 220,
  [221] = 221,
  [222] = 222,
  [223] = 223,
  [224] = 224,
  [225] = 225,
  [226] = 76,
  [227] = 227,
  [228] = 228,
  [229] = 229,
  [230] = 230,
  [231] = 231,
  [232] = 232,
  [233] = 233,
  [234] = 234,
  [235] = 235,
  [236] = 236,
  [237] = 237,
  [238] = 238,
  [239] = 239,
  [240] = 240,
  [241] = 241,
  [242] = 242,
  [243] = 243,
  [244] = 244,
  [245] = 245,
  [246] = 246,
  [247] = 247,
  [248] = 248,
  [249] = 249,
  [250] = 250,
  [251] = 251,
  [252] = 252,
  [253] = 253,
  [254] = 254,
  [255] = 255,
  [256] = 256,
  [257] = 257,
  [258] = 258,
  [259] = 259,
  [260] = 260,
  [261] = 261,
  [262] = 262,
  [263] = 263,
  [264] = 264,
  [265] = 265,
  [266] = 266,
  [267] = 267,
  [268] = 268,
  [269] = 269,
  [270] = 270,
  [271] = 271,
  [272] = 272,
  [273] = 273,
  [274] = 274,
  [275] = 275,
  [276] = 276,
  [277] = 277,
  [278] = 278,
  [279] = 279,
  [280] = 280,
  [281] = 281,
  [282] = 282,
  [283] = 283,
  [284] = 284,
  [285] = 285,
  [286] = 286,
  [287] = 287,
  [288] = 288,
  [289] = 289,
  [290] = 290,
  [291] = 291,
  [292] = 292,
  [293] = 293,
  [294] = 294,
  [295] = 295,
  [296] = 296,
  [297] = 297,
  [298] = 298,
  [299] = 299,
  [300] = 300,
  [301] = 301,
  [302] = 302,
  [303] = 303,
  [304] = 304,
  [305] = 305,
  [306] = 306,
  [307] = 307,
  [308] = 308,
  [309] = 309,
  [310] = 310,
  [311] = 311,
  [312] = 312,
  [313] = 313,
  [314] = 314,
  [315] = 315,
  [316] = 316,
  [317] = 317,
  [318] = 318,
  [319] = 95,
  [320] = 320,
  [321] = 321,
  [322] = 322,
  [323] = 323,
  [324] = 324,
  [325] = 325,
  [326] = 326,
  [327] = 327,
  [328] = 328,
  [329] = 329,
  [330] = 330,
  [331] = 331,
  [332] = 332,
  [333] = 333,
  [334] = 334,
  [335] = 335,
  [336] = 336,
  [337] = 337,
  [338] = 338,
  [339] = 339,
  [340] = 340,
  [341] = 341,
  [342] = 342,
  [343] = 343,
  [344] = 344,
  [345] = 345,
  [346] = 346,
  [347] = 347,
  [348] = 348,
  [349] = 349,
  [350] = 350,
  [351] = 351,
  [352] = 352,
  [353] = 353,
  [354] = 354,
  [355] = 355,
  [356] = 356,
  [357] = 357,
  [358] = 358,
  [359] = 359,
  [360] = 360,
  [361] = 361,
  [362] = 362,
  [363] = 363,
  [364] = 364,
  [365] = 365,
  [366] = 366,
  [367] = 367,
  [368] = 368,
  [369] = 369,
  [370] = 370,
  [371] = 371,
  [372] = 372,
  [373] = 373,
  [374] = 374,
  [375] = 375,
  [376] = 376,
  [377] = 377,
  [378] = 378,
  [379] = 379,
  [380] = 380,
  [381] = 381,
  [382] = 382,
  [383] = 383,
  [384] = 384,
  [385] = 385,
  [386] = 386,
  [387] = 387,
  [388] = 388,
  [389] = 389,
  [390] = 390,
  [391] = 391,
  [392] = 392,
  [393] = 393,
  [394] = 394,
  [395] = 395,
  [396] = 396,
  [397] = 397,
  [398] = 398,
  [399] = 399,
  [400] = 400,
  [401] = 401,
  [402] = 402,
  [403] = 403,
  [404] = 404,
  [405] = 405,
  [406] = 406,
  [407] = 407,
  [408] = 408,
  [409] = 409,
  [410] = 410,
  [411] = 411,
  [412] = 412,
  [413] = 413,
  [414] = 414,
  [415] = 415,
  [416] = 416,
  [417] = 417,
  [418] = 418,
  [419] = 419,
  [420] = 420,
  [421] = 421,
  [422] = 422,
  [423] = 423,
  [424] = 424,
  [425] = 425,
  [426] = 426,
  [427] = 427,
  [428] = 428,
  [429] = 429,
  [430] = 430,
  [431] = 431,
  [432] = 432,
  [433] = 433,
  [434] = 434,
  [435] = 435,
  [436] = 436,
  [437] = 437,
  [438] = 438,
  [439] = 439,
  [440] = 440,
  [441] = 441,
  [442] = 442,
  [443] = 443,
  [444] = 444,
  [445] = 445,
  [446] = 446,
  [447] = 447,
  [448] = 448,
  [449] = 449,
  [450] = 450,
  [451] = 451,
  [452] = 452,
  [453] = 453,
  [454] = 454,
  [455] = 455,
  [456] = 456,
  [457] = 457,
  [458] = 458,
  [459] = 459,
  [460] = 460,
  [461] = 461,
  [462] = 462,
  [463] = 463,
  [464] = 464,
  [465] = 426,
  [466] = 466,
  [467] = 467,
  [468] = 447,
  [469] = 435,
  [470] = 438,
  [471] = 471,
  [472] = 472,
  [473] = 421,
  [474] = 457,
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(29);
      if (lookahead == '!') ADVANCE(42);
      if (lookahead == '"') ADVANCE(4);
      if (lookahead == '#') ADVANCE(65);
      if (lookahead == '&' ||
          lookahead == '|') ADVANCE(39);
      if (lookahead == '(') ADVANCE(46);
      if (lookahead == ')') ADVANCE(47);
      if (lookahead == '*') ADVANCE(59);
      if (lookahead == '+') ADVANCE(55);
      if (lookahead == ',') ADVANCE(41);
      if (lookahead == '-') ADVANCE(57);
      if (lookahead == '.') ADVANCE(45);
      if (lookahead == '/') ADVANCE(61);
      if (lookahead == ':') ADVANCE(66);
      if (lookahead == '<') ADVANCE(13);
      if (lookahead == '=') ADVANCE(37);
      if (lookahead == '@') ADVANCE(38);
      if (lookahead == 'E') ADVANCE(40);
      if (lookahead == '[') ADVANCE(52);
      if (lookahead == '\\') ADVANCE(20);
      if (lookahead == ']') ADVANCE(53);
      if (lookahead == '^') ADVANCE(62);
      if (lookahead == 'l') ADVANCE(76);
      if (lookahead == '{') ADVANCE(33);
      if (lookahead == '}') ADVANCE(34);
      if (lookahead == 'A' ||
          lookahead == 'C' ||
          lookahead == 'I') ADVANCE(78);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(0)
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73);
      if (('B' <= lookahead && lookahead <= '_') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 1:
      if (lookahead == '!') ADVANCE(42);
      if (lookahead == '#' ||
          lookahead == '&' ||
          lookahead == '|') ADVANCE(39);
      if (lookahead == '+') ADVANCE(21);
      if (lookahead == '-') ADVANCE(22);
      if (lookahead == '/') ADVANCE(9);
      if (lookahead == '<') ADVANCE(15);
      if (lookahead == '@') ADVANCE(38);
      if (lookahead == 'E') ADVANCE(40);
      if (lookahead == '[') ADVANCE(52);
      if (lookahead == 'l') ADVANCE(76);
      if (lookahead == '{') ADVANCE(33);
      if (lookahead == '}') ADVANCE(34);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(1)
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 2:
      if (lookahead == '!') ADVANCE(42);
      if (lookahead == '#' ||
          lookahead == '&' ||
          lookahead == 'E' ||
          lookahead == '|') ADVANCE(39);
      if (lookahead == '+') ADVANCE(21);
      if (lookahead == '-') ADVANCE(22);
      if (lookahead == '/') ADVANCE(9);
      if (lookahead == '<') ADVANCE(15);
      if (lookahead == '[') ADVANCE(52);
      if (lookahead == 'l') ADVANCE(25);
      if (lookahead == '}') ADVANCE(34);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(2)
      END_STATE();
    case 3:
      if (lookahead == '!') ADVANCE(24);
      if (lookahead == '#' ||
          lookahead == '&' ||
          lookahead == 'E' ||
          lookahead == '|') ADVANCE(39);
      if (lookahead == '(') ADVANCE(46);
      if (lookahead == ')') ADVANCE(47);
      if (lookahead == '*') ADVANCE(59);
      if (lookahead == '+') ADVANCE(21);
      if (lookahead == ',') ADVANCE(41);
      if (lookahead == '-') ADVANCE(58);
      if (lookahead == '.') ADVANCE(44);
      if (lookahead == '/') ADVANCE(8);
      if (lookahead == '[') ADVANCE(52);
      if (lookahead == '\\') ADVANCE(20);
      if (lookahead == 'l') ADVANCE(25);
      if (lookahead == '}') ADVANCE(34);
      if (lookahead == 'A' ||
          lookahead == 'C' ||
          lookahead == 'I') ADVANCE(79);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(3)
      END_STATE();
    case 4:
      if (lookahead == '"') ADVANCE(70);
      if (lookahead == '\\') ADVANCE(5);
      if (lookahead != 0) ADVANCE(4);
      END_STATE();
    case 5:
      if (lookahead == '"') ADVANCE(71);
      if (lookahead == '\\') ADVANCE(5);
      if (lookahead != 0) ADVANCE(4);
      END_STATE();
    case 6:
      if (lookahead == '(') ADVANCE(46);
      if (lookahead == ')') ADVANCE(47);
      if (lookahead == '*') ADVANCE(59);
      if (lookahead == '+') ADVANCE(54);
      if (lookahead == '-') ADVANCE(56);
      if (lookahead == '.') ADVANCE(18);
      if (lookahead == '/') ADVANCE(60);
      if (lookahead == ':') ADVANCE(27);
      if (lookahead == '<') ADVANCE(16);
      if (lookahead == '[') ADVANCE(52);
      if (lookahead == ']') ADVANCE(53);
      if (lookahead == '^') ADVANCE(62);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(6)
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 7:
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(32);
      END_STATE();
    case 8:
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(32);
      if (lookahead == '\\') ADVANCE(64);
      END_STATE();
    case 9:
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(31);
      END_STATE();
    case 10:
      if (lookahead == '*') ADVANCE(10);
      if (lookahead == '/') ADVANCE(30);
      if (lookahead != 0) ADVANCE(11);
      END_STATE();
    case 11:
      if (lookahead == '*') ADVANCE(10);
      if (lookahead != 0) ADVANCE(11);
      END_STATE();
    case 12:
      if (lookahead == '-') ADVANCE(23);
      END_STATE();
    case 13:
      if (lookahead == '-') ADVANCE(49);
      END_STATE();
    case 14:
      if (lookahead == '-') ADVANCE(67);
      END_STATE();
    case 15:
      if (lookahead == '-') ADVANCE(48);
      END_STATE();
    case 16:
      if (lookahead == '-') ADVANCE(14);
      END_STATE();
    case 17:
      if (lookahead == '-') ADVANCE(12);
      if (lookahead == '/') ADVANCE(7);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(17)
      END_STATE();
    case 18:
      if (lookahead == '.') ADVANCE(69);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(75);
      END_STATE();
    case 19:
      if (lookahead == '.') ADVANCE(75);
      END_STATE();
    case 20:
      if (lookahead == '/') ADVANCE(63);
      END_STATE();
    case 21:
      if (lookahead == '>') ADVANCE(50);
      END_STATE();
    case 22:
      if (lookahead == '>') ADVANCE(51);
      END_STATE();
    case 23:
      if (lookahead == '>') ADVANCE(68);
      END_STATE();
    case 24:
      if (lookahead == 'E') ADVANCE(39);
      END_STATE();
    case 25:
      if (lookahead == 'e') ADVANCE(26);
      END_STATE();
    case 26:
      if (lookahead == 't') ADVANCE(35);
      END_STATE();
    case 27:
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(74);
      END_STATE();
    case 28:
      if (eof) ADVANCE(29);
      if (lookahead == '#') ADVANCE(65);
      if (lookahead == '(') ADVANCE(46);
      if (lookahead == ')') ADVANCE(47);
      if (lookahead == '*') ADVANCE(59);
      if (lookahead == '-') ADVANCE(56);
      if (lookahead == '.') ADVANCE(44);
      if (lookahead == '/') ADVANCE(8);
      if (lookahead == '<') ADVANCE(16);
      if (lookahead == '[') ADVANCE(52);
      if (lookahead == '\\') ADVANCE(20);
      if (lookahead == '{') ADVANCE(33);
      if (lookahead == '}') ADVANCE(34);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(28)
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 29:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 30:
      ACCEPT_TOKEN(sym_comment);
      END_STATE();
    case 31:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '!') ADVANCE(43);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r' &&
          lookahead != 8232 &&
          lookahead != 8233) ADVANCE(32);
      END_STATE();
    case 32:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r' &&
          lookahead != 8232 &&
          lookahead != 8233) ADVANCE(32);
      END_STATE();
    case 33:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 34:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 35:
      ACCEPT_TOKEN(anon_sym_let);
      END_STATE();
    case 36:
      ACCEPT_TOKEN(anon_sym_let);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 37:
      ACCEPT_TOKEN(anon_sym_EQ);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(anon_sym_AT);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(sym_step_type);
      END_STATE();
    case 40:
      ACCEPT_TOKEN(sym_step_type);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 42:
      ACCEPT_TOKEN(anon_sym_BANG);
      if (lookahead == 'E') ADVANCE(39);
      END_STATE();
    case 43:
      ACCEPT_TOKEN(anon_sym_SLASH_SLASH_BANG);
      END_STATE();
    case 44:
      ACCEPT_TOKEN(anon_sym_DOT);
      END_STATE();
    case 45:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(69);
      END_STATE();
    case 46:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(anon_sym_LT_DASH);
      END_STATE();
    case 49:
      ACCEPT_TOKEN(anon_sym_LT_DASH);
      if (lookahead == '-') ADVANCE(67);
      END_STATE();
    case 50:
      ACCEPT_TOKEN(anon_sym_PLUS_GT);
      END_STATE();
    case 51:
      ACCEPT_TOKEN(anon_sym_DASH_GT);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 53:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 54:
      ACCEPT_TOKEN(anon_sym_PLUS);
      END_STATE();
    case 55:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if (lookahead == '>') ADVANCE(50);
      END_STATE();
    case 56:
      ACCEPT_TOKEN(anon_sym_DASH);
      END_STATE();
    case 57:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(23);
      if (lookahead == '>') ADVANCE(51);
      END_STATE();
    case 58:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '>') ADVANCE(51);
      END_STATE();
    case 59:
      ACCEPT_TOKEN(anon_sym_STAR);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(32);
      END_STATE();
    case 61:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(32);
      if (lookahead == '\\') ADVANCE(64);
      END_STATE();
    case 62:
      ACCEPT_TOKEN(anon_sym_CARET);
      END_STATE();
    case 63:
      ACCEPT_TOKEN(anon_sym_BSLASH_SLASH);
      END_STATE();
    case 64:
      ACCEPT_TOKEN(anon_sym_SLASH_BSLASH);
      END_STATE();
    case 65:
      ACCEPT_TOKEN(anon_sym_POUND);
      END_STATE();
    case 66:
      ACCEPT_TOKEN(anon_sym_COLON);
      END_STATE();
    case 67:
      ACCEPT_TOKEN(anon_sym_LT_DASH_DASH);
      END_STATE();
    case 68:
      ACCEPT_TOKEN(anon_sym_DASH_DASH_GT);
      END_STATE();
    case 69:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      END_STATE();
    case 70:
      ACCEPT_TOKEN(sym_string);
      END_STATE();
    case 71:
      ACCEPT_TOKEN(sym_string);
      if (lookahead == '"') ADVANCE(70);
      if (lookahead == '\\') ADVANCE(5);
      if (lookahead != 0) ADVANCE(4);
      END_STATE();
    case 72:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(75);
      if (lookahead == ':') ADVANCE(19);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 73:
      ACCEPT_TOKEN(sym_integer);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 74:
      ACCEPT_TOKEN(sym_float);
      if (lookahead == '.') ADVANCE(75);
      if (lookahead == ':') ADVANCE(19);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(74);
      END_STATE();
    case 75:
      ACCEPT_TOKEN(sym_float);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(75);
      END_STATE();
    case 76:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(77);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 77:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(36);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 78:
      ACCEPT_TOKEN(sym_identifier);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
      END_STATE();
    case 79:
      ACCEPT_TOKEN(sym_cia);
      END_STATE();
    default:
      return false;
  }
}

static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (lookahead == 'a') ADVANCE(1);
      if (lookahead == 'c') ADVANCE(2);
      if (lookahead == 'e') ADVANCE(3);
      if (lookahead == 'i') ADVANCE(4);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(0)
      END_STATE();
    case 1:
      if (lookahead == 'b') ADVANCE(5);
      if (lookahead == 'c') ADVANCE(6);
      if (lookahead == 's') ADVANCE(7);
      END_STATE();
    case 2:
      if (lookahead == 'a') ADVANCE(8);
      END_STATE();
    case 3:
      if (lookahead == 'f') ADVANCE(9);
      if (lookahead == 'x') ADVANCE(10);
      END_STATE();
    case 4:
      if (lookahead == 'n') ADVANCE(11);
      END_STATE();
    case 5:
      if (lookahead == 's') ADVANCE(12);
      END_STATE();
    case 6:
      if (lookahead == 't') ADVANCE(13);
      END_STATE();
    case 7:
      if (lookahead == 's') ADVANCE(14);
      END_STATE();
    case 8:
      if (lookahead == 't') ADVANCE(15);
      END_STATE();
    case 9:
      if (lookahead == 'f') ADVANCE(16);
      END_STATE();
    case 10:
      if (lookahead == 't') ADVANCE(17);
      END_STATE();
    case 11:
      if (lookahead == 'c') ADVANCE(18);
      if (lookahead == 'f') ADVANCE(19);
      END_STATE();
    case 12:
      if (lookahead == 't') ADVANCE(20);
      END_STATE();
    case 13:
      if (lookahead == 'i') ADVANCE(21);
      END_STATE();
    case 14:
      if (lookahead == 'e') ADVANCE(22);
      if (lookahead == 'o') ADVANCE(23);
      END_STATE();
    case 15:
      if (lookahead == 'e') ADVANCE(24);
      END_STATE();
    case 16:
      if (lookahead == 'e') ADVANCE(25);
      END_STATE();
    case 17:
      if (lookahead == 'e') ADVANCE(26);
      END_STATE();
    case 18:
      if (lookahead == 'l') ADVANCE(27);
      END_STATE();
    case 19:
      if (lookahead == 'o') ADVANCE(28);
      END_STATE();
    case 20:
      if (lookahead == 'r') ADVANCE(29);
      END_STATE();
    case 21:
      if (lookahead == 'o') ADVANCE(30);
      END_STATE();
    case 22:
      if (lookahead == 't') ADVANCE(31);
      END_STATE();
    case 23:
      if (lookahead == 'c') ADVANCE(32);
      END_STATE();
    case 24:
      if (lookahead == 'g') ADVANCE(33);
      END_STATE();
    case 25:
      if (lookahead == 'c') ADVANCE(34);
      END_STATE();
    case 26:
      if (lookahead == 'n') ADVANCE(35);
      END_STATE();
    case 27:
      if (lookahead == 'u') ADVANCE(36);
      END_STATE();
    case 28:
      ACCEPT_TOKEN(anon_sym_info);
      END_STATE();
    case 29:
      if (lookahead == 'a') ADVANCE(37);
      END_STATE();
    case 30:
      if (lookahead == 'n') ADVANCE(38);
      END_STATE();
    case 31:
      ACCEPT_TOKEN(anon_sym_asset);
      END_STATE();
    case 32:
      if (lookahead == 'i') ADVANCE(39);
      END_STATE();
    case 33:
      if (lookahead == 'o') ADVANCE(40);
      END_STATE();
    case 34:
      if (lookahead == 't') ADVANCE(41);
      END_STATE();
    case 35:
      if (lookahead == 'd') ADVANCE(42);
      END_STATE();
    case 36:
      if (lookahead == 'd') ADVANCE(43);
      END_STATE();
    case 37:
      if (lookahead == 'c') ADVANCE(44);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(anon_sym_action);
      END_STATE();
    case 39:
      if (lookahead == 'a') ADVANCE(45);
      END_STATE();
    case 40:
      if (lookahead == 'r') ADVANCE(46);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_effect);
      END_STATE();
    case 42:
      if (lookahead == 's') ADVANCE(47);
      END_STATE();
    case 43:
      if (lookahead == 'e') ADVANCE(48);
      END_STATE();
    case 44:
      if (lookahead == 't') ADVANCE(49);
      END_STATE();
    case 45:
      if (lookahead == 't') ADVANCE(50);
      END_STATE();
    case 46:
      if (lookahead == 'y') ADVANCE(51);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(anon_sym_extends);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(anon_sym_include);
      END_STATE();
    case 49:
      ACCEPT_TOKEN(anon_sym_abstract);
      END_STATE();
    case 50:
      if (lookahead == 'i') ADVANCE(52);
      END_STATE();
    case 51:
      ACCEPT_TOKEN(anon_sym_category);
      END_STATE();
    case 52:
      if (lookahead == 'o') ADVANCE(53);
      END_STATE();
    case 53:
      if (lookahead == 'n') ADVANCE(54);
      END_STATE();
    case 54:
      if (lookahead == 's') ADVANCE(55);
      END_STATE();
    case 55:
      ACCEPT_TOKEN(anon_sym_associations);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0},
  [1] = {.lex_state = 28},
  [2] = {.lex_state = 1},
  [3] = {.lex_state = 1},
  [4] = {.lex_state = 1},
  [5] = {.lex_state = 1},
  [6] = {.lex_state = 1},
  [7] = {.lex_state = 1},
  [8] = {.lex_state = 1},
  [9] = {.lex_state = 1},
  [10] = {.lex_state = 1},
  [11] = {.lex_state = 1},
  [12] = {.lex_state = 1},
  [13] = {.lex_state = 1},
  [14] = {.lex_state = 1},
  [15] = {.lex_state = 1},
  [16] = {.lex_state = 1},
  [17] = {.lex_state = 1},
  [18] = {.lex_state = 1},
  [19] = {.lex_state = 1},
  [20] = {.lex_state = 1},
  [21] = {.lex_state = 1},
  [22] = {.lex_state = 1},
  [23] = {.lex_state = 1},
  [24] = {.lex_state = 1},
  [25] = {.lex_state = 1},
  [26] = {.lex_state = 1},
  [27] = {.lex_state = 1},
  [28] = {.lex_state = 1},
  [29] = {.lex_state = 1},
  [30] = {.lex_state = 1},
  [31] = {.lex_state = 1},
  [32] = {.lex_state = 1},
  [33] = {.lex_state = 1},
  [34] = {.lex_state = 3},
  [35] = {.lex_state = 1},
  [36] = {.lex_state = 3},
  [37] = {.lex_state = 3},
  [38] = {.lex_state = 3},
  [39] = {.lex_state = 3},
  [40] = {.lex_state = 3},
  [41] = {.lex_state = 3},
  [42] = {.lex_state = 2},
  [43] = {.lex_state = 2},
  [44] = {.lex_state = 2},
  [45] = {.lex_state = 2},
  [46] = {.lex_state = 2},
  [47] = {.lex_state = 2},
  [48] = {.lex_state = 2},
  [49] = {.lex_state = 2},
  [50] = {.lex_state = 2},
  [51] = {.lex_state = 2},
  [52] = {.lex_state = 2},
  [53] = {.lex_state = 2},
  [54] = {.lex_state = 2},
  [55] = {.lex_state = 2},
  [56] = {.lex_state = 2},
  [57] = {.lex_state = 2},
  [58] = {.lex_state = 2},
  [59] = {.lex_state = 2},
  [60] = {.lex_state = 2},
  [61] = {.lex_state = 2},
  [62] = {.lex_state = 2},
  [63] = {.lex_state = 2},
  [64] = {.lex_state = 2},
  [65] = {.lex_state = 1},
  [66] = {.lex_state = 2},
  [67] = {.lex_state = 2},
  [68] = {.lex_state = 2},
  [69] = {.lex_state = 3},
  [70] = {.lex_state = 2},
  [71] = {.lex_state = 2},
  [72] = {.lex_state = 2},
  [73] = {.lex_state = 2},
  [74] = {.lex_state = 2},
  [75] = {.lex_state = 2},
  [76] = {.lex_state = 1},
  [77] = {.lex_state = 28},
  [78] = {.lex_state = 28},
  [79] = {.lex_state = 1},
  [80] = {.lex_state = 1},
  [81] = {.lex_state = 6},
  [82] = {.lex_state = 6},
  [83] = {.lex_state = 1},
  [84] = {.lex_state = 2},
  [85] = {.lex_state = 6},
  [86] = {.lex_state = 28},
  [87] = {.lex_state = 6},
  [88] = {.lex_state = 1},
  [89] = {.lex_state = 28},
  [90] = {.lex_state = 6},
  [91] = {.lex_state = 2},
  [92] = {.lex_state = 2},
  [93] = {.lex_state = 6},
  [94] = {.lex_state = 28},
  [95] = {.lex_state = 1},
  [96] = {.lex_state = 28},
  [97] = {.lex_state = 1},
  [98] = {.lex_state = 28},
  [99] = {.lex_state = 28},
  [100] = {.lex_state = 28},
  [101] = {.lex_state = 28},
  [102] = {.lex_state = 2},
  [103] = {.lex_state = 2},
  [104] = {.lex_state = 2},
  [105] = {.lex_state = 28},
  [106] = {.lex_state = 28},
  [107] = {.lex_state = 28},
  [108] = {.lex_state = 28},
  [109] = {.lex_state = 28},
  [110] = {.lex_state = 2},
  [111] = {.lex_state = 6},
  [112] = {.lex_state = 2},
  [113] = {.lex_state = 6},
  [114] = {.lex_state = 3},
  [115] = {.lex_state = 3},
  [116] = {.lex_state = 6},
  [117] = {.lex_state = 3},
  [118] = {.lex_state = 3},
  [119] = {.lex_state = 6},
  [120] = {.lex_state = 6},
  [121] = {.lex_state = 6},
  [122] = {.lex_state = 6},
  [123] = {.lex_state = 3},
  [124] = {.lex_state = 3},
  [125] = {.lex_state = 6},
  [126] = {.lex_state = 3},
  [127] = {.lex_state = 28},
  [128] = {.lex_state = 3},
  [129] = {.lex_state = 3},
  [130] = {.lex_state = 3},
  [131] = {.lex_state = 28},
  [132] = {.lex_state = 3},
  [133] = {.lex_state = 28},
  [134] = {.lex_state = 28},
  [135] = {.lex_state = 28},
  [136] = {.lex_state = 28},
  [137] = {.lex_state = 28},
  [138] = {.lex_state = 28},
  [139] = {.lex_state = 28},
  [140] = {.lex_state = 3},
  [141] = {.lex_state = 3},
  [142] = {.lex_state = 6},
  [143] = {.lex_state = 3},
  [144] = {.lex_state = 3},
  [145] = {.lex_state = 3},
  [146] = {.lex_state = 3},
  [147] = {.lex_state = 3},
  [148] = {.lex_state = 3},
  [149] = {.lex_state = 3},
  [150] = {.lex_state = 0},
  [151] = {.lex_state = 3},
  [152] = {.lex_state = 3},
  [153] = {.lex_state = 3},
  [154] = {.lex_state = 3},
  [155] = {.lex_state = 3},
  [156] = {.lex_state = 3},
  [157] = {.lex_state = 3},
  [158] = {.lex_state = 3},
  [159] = {.lex_state = 3},
  [160] = {.lex_state = 3},
  [161] = {.lex_state = 3},
  [162] = {.lex_state = 3},
  [163] = {.lex_state = 3},
  [164] = {.lex_state = 3},
  [165] = {.lex_state = 3},
  [166] = {.lex_state = 3},
  [167] = {.lex_state = 3},
  [168] = {.lex_state = 3},
  [169] = {.lex_state = 3},
  [170] = {.lex_state = 6},
  [171] = {.lex_state = 3},
  [172] = {.lex_state = 3},
  [173] = {.lex_state = 6},
  [174] = {.lex_state = 3},
  [175] = {.lex_state = 3},
  [176] = {.lex_state = 3},
  [177] = {.lex_state = 3},
  [178] = {.lex_state = 3},
  [179] = {.lex_state = 3},
  [180] = {.lex_state = 3},
  [181] = {.lex_state = 3},
  [182] = {.lex_state = 3},
  [183] = {.lex_state = 3},
  [184] = {.lex_state = 3},
  [185] = {.lex_state = 3},
  [186] = {.lex_state = 3},
  [187] = {.lex_state = 3},
  [188] = {.lex_state = 3},
  [189] = {.lex_state = 3},
  [190] = {.lex_state = 3},
  [191] = {.lex_state = 3},
  [192] = {.lex_state = 3},
  [193] = {.lex_state = 0},
  [194] = {.lex_state = 3},
  [195] = {.lex_state = 3},
  [196] = {.lex_state = 3},
  [197] = {.lex_state = 3},
  [198] = {.lex_state = 3},
  [199] = {.lex_state = 3},
  [200] = {.lex_state = 3},
  [201] = {.lex_state = 3},
  [202] = {.lex_state = 3},
  [203] = {.lex_state = 3},
  [204] = {.lex_state = 3},
  [205] = {.lex_state = 3},
  [206] = {.lex_state = 3},
  [207] = {.lex_state = 3},
  [208] = {.lex_state = 3},
  [209] = {.lex_state = 3},
  [210] = {.lex_state = 3},
  [211] = {.lex_state = 3},
  [212] = {.lex_state = 3},
  [213] = {.lex_state = 28},
  [214] = {.lex_state = 28},
  [215] = {.lex_state = 28},
  [216] = {.lex_state = 28},
  [217] = {.lex_state = 28},
  [218] = {.lex_state = 28},
  [219] = {.lex_state = 28},
  [220] = {.lex_state = 28},
  [221] = {.lex_state = 28},
  [222] = {.lex_state = 28},
  [223] = {.lex_state = 28},
  [224] = {.lex_state = 28},
  [225] = {.lex_state = 28},
  [226] = {.lex_state = 28},
  [227] = {.lex_state = 28},
  [228] = {.lex_state = 28},
  [229] = {.lex_state = 28},
  [230] = {.lex_state = 3},
  [231] = {.lex_state = 28},
  [232] = {.lex_state = 28},
  [233] = {.lex_state = 0},
  [234] = {.lex_state = 28},
  [235] = {.lex_state = 28},
  [236] = {.lex_state = 28},
  [237] = {.lex_state = 6},
  [238] = {.lex_state = 28},
  [239] = {.lex_state = 28},
  [240] = {.lex_state = 28},
  [241] = {.lex_state = 28},
  [242] = {.lex_state = 28},
  [243] = {.lex_state = 28},
  [244] = {.lex_state = 28},
  [245] = {.lex_state = 28},
  [246] = {.lex_state = 28},
  [247] = {.lex_state = 28},
  [248] = {.lex_state = 3},
  [249] = {.lex_state = 3},
  [250] = {.lex_state = 28},
  [251] = {.lex_state = 0},
  [252] = {.lex_state = 3},
  [253] = {.lex_state = 3},
  [254] = {.lex_state = 28},
  [255] = {.lex_state = 3},
  [256] = {.lex_state = 3},
  [257] = {.lex_state = 3},
  [258] = {.lex_state = 3},
  [259] = {.lex_state = 3},
  [260] = {.lex_state = 3},
  [261] = {.lex_state = 28},
  [262] = {.lex_state = 3},
  [263] = {.lex_state = 3},
  [264] = {.lex_state = 3},
  [265] = {.lex_state = 3},
  [266] = {.lex_state = 28},
  [267] = {.lex_state = 3},
  [268] = {.lex_state = 3},
  [269] = {.lex_state = 28},
  [270] = {.lex_state = 3},
  [271] = {.lex_state = 3},
  [272] = {.lex_state = 3},
  [273] = {.lex_state = 28},
  [274] = {.lex_state = 3},
  [275] = {.lex_state = 3},
  [276] = {.lex_state = 3},
  [277] = {.lex_state = 3},
  [278] = {.lex_state = 3},
  [279] = {.lex_state = 6},
  [280] = {.lex_state = 3},
  [281] = {.lex_state = 28},
  [282] = {.lex_state = 3},
  [283] = {.lex_state = 6},
  [284] = {.lex_state = 3},
  [285] = {.lex_state = 3},
  [286] = {.lex_state = 3},
  [287] = {.lex_state = 3},
  [288] = {.lex_state = 3},
  [289] = {.lex_state = 3},
  [290] = {.lex_state = 0},
  [291] = {.lex_state = 3},
  [292] = {.lex_state = 28},
  [293] = {.lex_state = 3},
  [294] = {.lex_state = 28},
  [295] = {.lex_state = 3},
  [296] = {.lex_state = 3},
  [297] = {.lex_state = 3},
  [298] = {.lex_state = 3},
  [299] = {.lex_state = 3},
  [300] = {.lex_state = 3},
  [301] = {.lex_state = 0},
  [302] = {.lex_state = 28},
  [303] = {.lex_state = 6},
  [304] = {.lex_state = 0},
  [305] = {.lex_state = 0},
  [306] = {.lex_state = 3},
  [307] = {.lex_state = 3},
  [308] = {.lex_state = 3},
  [309] = {.lex_state = 3},
  [310] = {.lex_state = 3},
  [311] = {.lex_state = 0},
  [312] = {.lex_state = 3},
  [313] = {.lex_state = 3},
  [314] = {.lex_state = 3},
  [315] = {.lex_state = 3},
  [316] = {.lex_state = 3},
  [317] = {.lex_state = 28},
  [318] = {.lex_state = 3},
  [319] = {.lex_state = 28},
  [320] = {.lex_state = 3},
  [321] = {.lex_state = 3},
  [322] = {.lex_state = 3},
  [323] = {.lex_state = 28},
  [324] = {.lex_state = 3},
  [325] = {.lex_state = 3},
  [326] = {.lex_state = 3},
  [327] = {.lex_state = 3},
  [328] = {.lex_state = 3},
  [329] = {.lex_state = 3},
  [330] = {.lex_state = 3},
  [331] = {.lex_state = 3},
  [332] = {.lex_state = 28},
  [333] = {.lex_state = 3},
  [334] = {.lex_state = 3},
  [335] = {.lex_state = 0},
  [336] = {.lex_state = 3},
  [337] = {.lex_state = 3},
  [338] = {.lex_state = 3},
  [339] = {.lex_state = 3},
  [340] = {.lex_state = 3},
  [341] = {.lex_state = 3},
  [342] = {.lex_state = 3},
  [343] = {.lex_state = 28},
  [344] = {.lex_state = 3},
  [345] = {.lex_state = 3},
  [346] = {.lex_state = 3},
  [347] = {.lex_state = 3},
  [348] = {.lex_state = 3},
  [349] = {.lex_state = 3},
  [350] = {.lex_state = 3},
  [351] = {.lex_state = 0},
  [352] = {.lex_state = 3},
  [353] = {.lex_state = 3},
  [354] = {.lex_state = 3},
  [355] = {.lex_state = 3},
  [356] = {.lex_state = 3},
  [357] = {.lex_state = 3},
  [358] = {.lex_state = 3},
  [359] = {.lex_state = 3},
  [360] = {.lex_state = 3},
  [361] = {.lex_state = 3},
  [362] = {.lex_state = 28},
  [363] = {.lex_state = 3},
  [364] = {.lex_state = 3},
  [365] = {.lex_state = 3},
  [366] = {.lex_state = 28},
  [367] = {.lex_state = 3},
  [368] = {.lex_state = 28},
  [369] = {.lex_state = 3},
  [370] = {.lex_state = 3},
  [371] = {.lex_state = 3},
  [372] = {.lex_state = 3},
  [373] = {.lex_state = 3},
  [374] = {.lex_state = 28},
  [375] = {.lex_state = 3},
  [376] = {.lex_state = 3},
  [377] = {.lex_state = 3},
  [378] = {.lex_state = 3},
  [379] = {.lex_state = 3},
  [380] = {.lex_state = 3},
  [381] = {.lex_state = 3},
  [382] = {.lex_state = 3},
  [383] = {.lex_state = 3},
  [384] = {.lex_state = 3},
  [385] = {.lex_state = 3},
  [386] = {.lex_state = 3},
  [387] = {.lex_state = 3},
  [388] = {.lex_state = 3},
  [389] = {.lex_state = 3},
  [390] = {.lex_state = 3},
  [391] = {.lex_state = 3},
  [392] = {.lex_state = 3},
  [393] = {.lex_state = 3},
  [394] = {.lex_state = 3},
  [395] = {.lex_state = 3},
  [396] = {.lex_state = 3},
  [397] = {.lex_state = 3},
  [398] = {.lex_state = 3},
  [399] = {.lex_state = 3},
  [400] = {.lex_state = 3},
  [401] = {.lex_state = 0},
  [402] = {.lex_state = 3},
  [403] = {.lex_state = 3},
  [404] = {.lex_state = 3},
  [405] = {.lex_state = 3},
  [406] = {.lex_state = 3},
  [407] = {.lex_state = 28},
  [408] = {.lex_state = 3},
  [409] = {.lex_state = 3},
  [410] = {.lex_state = 3},
  [411] = {.lex_state = 0},
  [412] = {.lex_state = 28},
  [413] = {.lex_state = 28},
  [414] = {.lex_state = 0},
  [415] = {.lex_state = 3},
  [416] = {.lex_state = 0},
  [417] = {.lex_state = 0},
  [418] = {.lex_state = 3},
  [419] = {.lex_state = 0},
  [420] = {.lex_state = 28},
  [421] = {.lex_state = 28},
  [422] = {.lex_state = 28},
  [423] = {.lex_state = 0},
  [424] = {.lex_state = 28},
  [425] = {.lex_state = 17},
  [426] = {.lex_state = 0},
  [427] = {.lex_state = 28},
  [428] = {.lex_state = 0},
  [429] = {.lex_state = 0},
  [430] = {.lex_state = 0},
  [431] = {.lex_state = 0},
  [432] = {.lex_state = 28},
  [433] = {.lex_state = 0},
  [434] = {.lex_state = 28},
  [435] = {.lex_state = 0},
  [436] = {.lex_state = 3},
  [437] = {.lex_state = 28},
  [438] = {.lex_state = 0},
  [439] = {.lex_state = 28},
  [440] = {.lex_state = 0},
  [441] = {.lex_state = 28},
  [442] = {.lex_state = 0},
  [443] = {.lex_state = 0},
  [444] = {.lex_state = 0},
  [445] = {.lex_state = 28},
  [446] = {.lex_state = 28},
  [447] = {.lex_state = 0},
  [448] = {.lex_state = 28},
  [449] = {.lex_state = 28},
  [450] = {.lex_state = 28},
  [451] = {.lex_state = 0},
  [452] = {.lex_state = 0},
  [453] = {.lex_state = 0},
  [454] = {.lex_state = 0},
  [455] = {.lex_state = 0},
  [456] = {.lex_state = 0},
  [457] = {.lex_state = 28},
  [458] = {.lex_state = 0},
  [459] = {.lex_state = 0},
  [460] = {.lex_state = 0},
  [461] = {.lex_state = 0},
  [462] = {.lex_state = 28},
  [463] = {.lex_state = 28},
  [464] = {.lex_state = 0},
  [465] = {.lex_state = 0},
  [466] = {.lex_state = 28},
  [467] = {.lex_state = 0},
  [468] = {.lex_state = 0},
  [469] = {.lex_state = 0},
  [470] = {.lex_state = 0},
  [471] = {.lex_state = 28},
  [472] = {.lex_state = 28},
  [473] = {.lex_state = 28},
  [474] = {.lex_state = 28},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [0] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [sym_identifier] = ACTIONS(1),
    [sym_comment] = ACTIONS(3),
    [anon_sym_include] = ACTIONS(1),
    [anon_sym_category] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_abstract] = ACTIONS(1),
    [anon_sym_asset] = ACTIONS(1),
    [anon_sym_extends] = ACTIONS(1),
    [anon_sym_let] = ACTIONS(1),
    [anon_sym_EQ] = ACTIONS(1),
    [anon_sym_AT] = ACTIONS(1),
    [sym_step_type] = ACTIONS(1),
    [anon_sym_action] = ACTIONS(1),
    [anon_sym_effect] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_DOT] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_LT_DASH] = ACTIONS(1),
    [anon_sym_PLUS_GT] = ACTIONS(1),
    [anon_sym_DASH_GT] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [anon_sym_DASH] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_SLASH] = ACTIONS(1),
    [anon_sym_CARET] = ACTIONS(1),
    [anon_sym_BSLASH_SLASH] = ACTIONS(1),
    [anon_sym_SLASH_BSLASH] = ACTIONS(1),
    [anon_sym_POUND] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_associations] = ACTIONS(1),
    [anon_sym_LT_DASH_DASH] = ACTIONS(1),
    [anon_sym_DASH_DASH_GT] = ACTIONS(1),
    [anon_sym_DOT_DOT] = ACTIONS(1),
    [anon_sym_info] = ACTIONS(1),
    [sym_string] = ACTIONS(1),
    [sym_integer] = ACTIONS(1),
    [sym_cia] = ACTIONS(1),
  },
  [1] = {
    [sym_source_file] = STATE(464),
    [sym_declaration] = STATE(78),
    [sym_include_declaration] = STATE(217),
    [sym_category_declaration] = STATE(217),
    [sym_define_declaration] = STATE(217),
    [sym_associations_declaration] = STATE(217),
    [aux_sym_source_file_repeat1] = STATE(78),
    [ts_builtin_sym_end] = ACTIONS(5),
    [sym_comment] = ACTIONS(3),
    [anon_sym_include] = ACTIONS(7),
    [anon_sym_category] = ACTIONS(9),
    [anon_sym_POUND] = ACTIONS(11),
    [anon_sym_associations] = ACTIONS(13),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 17,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(19), 1,
      anon_sym_LBRACE,
    ACTIONS(21), 1,
      anon_sym_RBRACE,
    ACTIONS(25), 1,
      anon_sym_AT,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    STATE(23), 1,
      sym_ttc,
    STATE(35), 1,
      aux_sym_attack_step_repeat1,
    STATE(210), 1,
      sym_preconditions,
    STATE(270), 1,
      sym_reaching,
    ACTIONS(23), 2,
      anon_sym_let,
      sym_step_type,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(18), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(70), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [56] = 17,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(25), 1,
      anon_sym_AT,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_RBRACE,
    STATE(4), 1,
      aux_sym_attack_step_repeat1,
    STATE(10), 1,
      sym_ttc,
    STATE(158), 1,
      sym_preconditions,
    STATE(329), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(41), 2,
      anon_sym_let,
      sym_step_type,
    STATE(15), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(63), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [112] = 17,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(25), 1,
      anon_sym_AT,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(43), 1,
      anon_sym_LBRACE,
    ACTIONS(45), 1,
      anon_sym_RBRACE,
    STATE(14), 1,
      sym_ttc,
    STATE(35), 1,
      aux_sym_attack_step_repeat1,
    STATE(154), 1,
      sym_preconditions,
    STATE(252), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(47), 2,
      anon_sym_let,
      sym_step_type,
    STATE(13), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(56), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [168] = 17,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(25), 1,
      anon_sym_AT,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(49), 1,
      anon_sym_LBRACE,
    ACTIONS(51), 1,
      anon_sym_RBRACE,
    STATE(2), 1,
      aux_sym_attack_step_repeat1,
    STATE(29), 1,
      sym_ttc,
    STATE(184), 1,
      sym_preconditions,
    STATE(340), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(53), 2,
      anon_sym_let,
      sym_step_type,
    STATE(30), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(53), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [224] = 14,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(55), 1,
      anon_sym_RBRACE,
    STATE(24), 1,
      sym_ttc,
    STATE(181), 1,
      sym_preconditions,
    STATE(297), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(57), 2,
      anon_sym_let,
      sym_step_type,
    STATE(25), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(72), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [271] = 14,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(59), 1,
      anon_sym_RBRACE,
    STATE(21), 1,
      sym_ttc,
    STATE(196), 1,
      sym_preconditions,
    STATE(318), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(61), 2,
      anon_sym_let,
      sym_step_type,
    STATE(12), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(44), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [318] = 14,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_RBRACE,
    STATE(19), 1,
      sym_ttc,
    STATE(189), 1,
      sym_preconditions,
    STATE(308), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(65), 2,
      anon_sym_let,
      sym_step_type,
    STATE(16), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(46), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [365] = 14,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(67), 1,
      anon_sym_RBRACE,
    STATE(28), 1,
      sym_ttc,
    STATE(191), 1,
      sym_preconditions,
    STATE(375), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(69), 2,
      anon_sym_let,
      sym_step_type,
    STATE(27), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(73), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [412] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(71), 1,
      anon_sym_RBRACE,
    STATE(168), 1,
      sym_preconditions,
    STATE(376), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(73), 2,
      anon_sym_let,
      sym_step_type,
    STATE(17), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(66), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [453] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(75), 1,
      anon_sym_RBRACE,
    STATE(160), 1,
      sym_preconditions,
    STATE(310), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(77), 2,
      anon_sym_let,
      sym_step_type,
    STATE(71), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [494] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(79), 1,
      anon_sym_RBRACE,
    STATE(195), 1,
      sym_preconditions,
    STATE(369), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(81), 2,
      anon_sym_let,
      sym_step_type,
    STATE(67), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [535] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(83), 1,
      anon_sym_RBRACE,
    STATE(141), 1,
      sym_preconditions,
    STATE(370), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(85), 2,
      anon_sym_let,
      sym_step_type,
    STATE(48), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [576] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(87), 1,
      anon_sym_RBRACE,
    STATE(190), 1,
      sym_preconditions,
    STATE(377), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(89), 2,
      anon_sym_let,
      sym_step_type,
    STATE(20), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(47), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [617] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(91), 1,
      anon_sym_RBRACE,
    STATE(162), 1,
      sym_preconditions,
    STATE(309), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(93), 2,
      anon_sym_let,
      sym_step_type,
    STATE(64), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [658] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(95), 1,
      anon_sym_RBRACE,
    STATE(201), 1,
      sym_preconditions,
    STATE(358), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(97), 2,
      anon_sym_let,
      sym_step_type,
    STATE(60), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [699] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(99), 1,
      anon_sym_RBRACE,
    STATE(180), 1,
      sym_preconditions,
    STATE(394), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(101), 2,
      anon_sym_let,
      sym_step_type,
    STATE(45), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [740] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(103), 1,
      anon_sym_RBRACE,
    STATE(164), 1,
      sym_preconditions,
    STATE(282), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(105), 2,
      anon_sym_let,
      sym_step_type,
    STATE(55), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [781] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(107), 1,
      anon_sym_RBRACE,
    STATE(140), 1,
      sym_preconditions,
    STATE(354), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(109), 2,
      anon_sym_let,
      sym_step_type,
    STATE(33), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(58), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [822] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(111), 1,
      anon_sym_RBRACE,
    STATE(146), 1,
      sym_preconditions,
    STATE(260), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(113), 2,
      anon_sym_let,
      sym_step_type,
    STATE(61), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [863] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(115), 1,
      anon_sym_RBRACE,
    STATE(198), 1,
      sym_preconditions,
    STATE(365), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(117), 2,
      anon_sym_let,
      sym_step_type,
    STATE(31), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(62), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [904] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(119), 1,
      anon_sym_RBRACE,
    STATE(209), 1,
      sym_preconditions,
    STATE(341), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(121), 2,
      anon_sym_let,
      sym_step_type,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [945] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(123), 1,
      anon_sym_RBRACE,
    STATE(159), 1,
      sym_preconditions,
    STATE(278), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(125), 2,
      anon_sym_let,
      sym_step_type,
    STATE(32), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(57), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [986] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(127), 1,
      anon_sym_RBRACE,
    STATE(171), 1,
      sym_preconditions,
    STATE(291), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(129), 2,
      anon_sym_let,
      sym_step_type,
    STATE(22), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(52), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [1027] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(131), 1,
      anon_sym_RBRACE,
    STATE(174), 1,
      sym_preconditions,
    STATE(295), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(133), 2,
      anon_sym_let,
      sym_step_type,
    STATE(51), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1068] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(135), 1,
      anon_sym_RBRACE,
    STATE(143), 1,
      sym_preconditions,
    STATE(268), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(137), 2,
      anon_sym_let,
      sym_step_type,
    STATE(43), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1109] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(139), 1,
      anon_sym_RBRACE,
    STATE(166), 1,
      sym_preconditions,
    STATE(371), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(141), 2,
      anon_sym_let,
      sym_step_type,
    STATE(59), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1150] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(143), 1,
      anon_sym_RBRACE,
    STATE(169), 1,
      sym_preconditions,
    STATE(384), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(145), 2,
      anon_sym_let,
      sym_step_type,
    STATE(11), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(75), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [1191] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(147), 1,
      anon_sym_RBRACE,
    STATE(202), 1,
      sym_preconditions,
    STATE(357), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(149), 2,
      anon_sym_let,
      sym_step_type,
    STATE(26), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(49), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [1232] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(151), 1,
      anon_sym_RBRACE,
    STATE(206), 1,
      sym_preconditions,
    STATE(346), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(153), 2,
      anon_sym_let,
      sym_step_type,
    STATE(50), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1273] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(155), 1,
      anon_sym_RBRACE,
    STATE(177), 1,
      sym_preconditions,
    STATE(402), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(157), 2,
      anon_sym_let,
      sym_step_type,
    STATE(74), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1314] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(159), 1,
      anon_sym_RBRACE,
    STATE(204), 1,
      sym_preconditions,
    STATE(330), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(161), 2,
      anon_sym_let,
      sym_step_type,
    STATE(68), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1355] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(163), 1,
      anon_sym_RBRACE,
    STATE(182), 1,
      sym_preconditions,
    STATE(392), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(165), 2,
      anon_sym_let,
      sym_step_type,
    STATE(42), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [1396] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(169), 1,
      anon_sym_LPAREN,
    ACTIONS(171), 1,
      anon_sym_DASH,
    ACTIONS(167), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1420] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(177), 1,
      anon_sym_AT,
    STATE(35), 1,
      aux_sym_attack_step_repeat1,
    ACTIONS(173), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(175), 7,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [1445] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(182), 1,
      anon_sym_DASH,
    ACTIONS(180), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1466] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(186), 1,
      anon_sym_DASH,
    ACTIONS(184), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1487] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(190), 1,
      anon_sym_DOT,
    ACTIONS(192), 1,
      anon_sym_LBRACK,
    ACTIONS(194), 1,
      anon_sym_DASH,
    ACTIONS(196), 1,
      anon_sym_STAR,
    ACTIONS(188), 9,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1514] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(192), 1,
      anon_sym_LBRACK,
    ACTIONS(194), 1,
      anon_sym_DASH,
    ACTIONS(196), 1,
      anon_sym_STAR,
    ACTIONS(188), 10,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1539] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(200), 1,
      anon_sym_DASH,
    ACTIONS(198), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1560] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(204), 1,
      anon_sym_DASH,
    ACTIONS(202), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [1581] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(163), 1,
      sym_preconditions,
    STATE(350), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(206), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1613] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(200), 1,
      sym_preconditions,
    STATE(324), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(208), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1645] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(192), 1,
      sym_preconditions,
    STATE(372), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(210), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1677] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(147), 1,
      sym_preconditions,
    STATE(256), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(212), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1709] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(199), 1,
      sym_preconditions,
    STATE(361), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(214), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1741] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(151), 1,
      sym_preconditions,
    STATE(262), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(216), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1773] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(144), 1,
      sym_preconditions,
    STATE(264), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(218), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1805] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(152), 1,
      sym_preconditions,
    STATE(271), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(220), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1837] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(155), 1,
      sym_preconditions,
    STATE(274), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(222), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1869] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(205), 1,
      sym_preconditions,
    STATE(347), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(224), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1901] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(207), 1,
      sym_preconditions,
    STATE(344), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(226), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1933] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(203), 1,
      sym_preconditions,
    STATE(327), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(228), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1965] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(185), 1,
      sym_preconditions,
    STATE(387), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(230), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1997] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(211), 1,
      sym_preconditions,
    STATE(336), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(232), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2029] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(197), 1,
      sym_preconditions,
    STATE(367), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(234), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2061] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(208), 1,
      sym_preconditions,
    STATE(333), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(236), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2093] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(179), 1,
      sym_preconditions,
    STATE(395), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(238), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2125] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(156), 1,
      sym_preconditions,
    STATE(299), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(240), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2157] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(178), 1,
      sym_preconditions,
    STATE(398), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(242), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2189] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(194), 1,
      sym_preconditions,
    STATE(314), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(244), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2221] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(176), 1,
      sym_preconditions,
    STATE(405), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(246), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2253] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(145), 1,
      sym_preconditions,
    STATE(253), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(248), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2285] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(186), 1,
      sym_preconditions,
    STATE(386), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(250), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2317] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(173), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(175), 8,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_AT,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [2337] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(183), 1,
      sym_preconditions,
    STATE(391), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(252), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2369] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(175), 1,
      sym_preconditions,
    STATE(408), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(254), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2401] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(187), 1,
      sym_preconditions,
    STATE(381), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(256), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2433] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(190), 1,
      anon_sym_DOT,
    ACTIONS(192), 1,
      anon_sym_LBRACK,
    ACTIONS(196), 1,
      anon_sym_STAR,
    ACTIONS(260), 1,
      anon_sym_DASH,
    ACTIONS(262), 2,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
    ACTIONS(258), 6,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2461] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(167), 1,
      sym_preconditions,
    STATE(285), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(264), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2493] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(153), 1,
      sym_preconditions,
    STATE(284), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(266), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2525] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(188), 1,
      sym_preconditions,
    STATE(298), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(268), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2557] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(165), 1,
      sym_preconditions,
    STATE(360), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(270), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2589] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(161), 1,
      sym_preconditions,
    STATE(331), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(272), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2621] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(157), 1,
      sym_preconditions,
    STATE(307), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(274), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2653] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(276), 1,
      sym_identifier,
    STATE(76), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    ACTIONS(281), 3,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
    ACTIONS(279), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2676] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(283), 1,
      ts_builtin_sym_end,
    ACTIONS(285), 1,
      anon_sym_include,
    ACTIONS(288), 1,
      anon_sym_category,
    ACTIONS(291), 1,
      anon_sym_POUND,
    ACTIONS(294), 1,
      anon_sym_associations,
    STATE(77), 2,
      sym_declaration,
      aux_sym_source_file_repeat1,
    STATE(217), 4,
      sym_include_declaration,
      sym_category_declaration,
      sym_define_declaration,
      sym_associations_declaration,
  [2705] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      anon_sym_include,
    ACTIONS(9), 1,
      anon_sym_category,
    ACTIONS(11), 1,
      anon_sym_POUND,
    ACTIONS(13), 1,
      anon_sym_associations,
    ACTIONS(297), 1,
      ts_builtin_sym_end,
    STATE(77), 2,
      sym_declaration,
      aux_sym_source_file_repeat1,
    STATE(217), 4,
      sym_include_declaration,
      sym_category_declaration,
      sym_define_declaration,
      sym_associations_declaration,
  [2734] = 6,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(299), 1,
      sym_identifier,
    ACTIONS(305), 1,
      anon_sym_LBRACK,
    STATE(110), 1,
      sym_ttc,
    ACTIONS(303), 3,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
    ACTIONS(301), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2759] = 6,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(305), 1,
      anon_sym_LBRACK,
    ACTIONS(307), 1,
      sym_identifier,
    STATE(103), 1,
      sym_ttc,
    ACTIONS(311), 3,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
    ACTIONS(309), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2784] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(313), 1,
      sym_identifier,
    ACTIONS(315), 1,
      anon_sym_LPAREN,
    ACTIONS(317), 2,
      sym_integer,
      sym_float,
    STATE(113), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [2806] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(313), 1,
      sym_identifier,
    ACTIONS(315), 1,
      anon_sym_LPAREN,
    ACTIONS(319), 2,
      sym_integer,
      sym_float,
    STATE(170), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [2828] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(321), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(323), 6,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [2846] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(305), 1,
      anon_sym_LBRACK,
    ACTIONS(327), 1,
      anon_sym_BANG,
    STATE(112), 1,
      sym_ttc,
    ACTIONS(325), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2868] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(313), 1,
      sym_identifier,
    ACTIONS(315), 1,
      anon_sym_LPAREN,
    ACTIONS(329), 2,
      sym_integer,
      sym_float,
    STATE(119), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [2890] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(331), 1,
      sym_identifier,
    ACTIONS(333), 1,
      anon_sym_LPAREN,
    STATE(335), 1,
      sym_detector_context_reference,
    STATE(427), 1,
      sym_asset_expr,
    STATE(127), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [2914] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(313), 1,
      sym_identifier,
    ACTIONS(315), 1,
      anon_sym_LPAREN,
    ACTIONS(335), 2,
      sym_integer,
      sym_float,
    STATE(116), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [2936] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(337), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(339), 6,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [2954] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(331), 1,
      sym_identifier,
    ACTIONS(333), 1,
      anon_sym_LPAREN,
    STATE(416), 1,
      sym_detector_context_reference,
    STATE(427), 1,
      sym_asset_expr,
    STATE(127), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [2978] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(313), 1,
      sym_identifier,
    ACTIONS(315), 1,
      anon_sym_LPAREN,
    ACTIONS(341), 2,
      sym_integer,
      sym_float,
    STATE(173), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [3000] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(345), 1,
      anon_sym_BANG,
    ACTIONS(348), 1,
      anon_sym_SLASH_SLASH_BANG,
    STATE(91), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(343), 6,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3022] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(305), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_BANG,
    STATE(102), 1,
      sym_ttc,
    ACTIONS(351), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3044] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(313), 1,
      sym_identifier,
    ACTIONS(315), 1,
      anon_sym_LPAREN,
    ACTIONS(355), 2,
      sym_integer,
      sym_float,
    STATE(142), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [3066] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(212), 1,
      sym_asset_expr,
    STATE(69), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3087] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(361), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(363), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3104] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(393), 1,
      sym_asset_expr,
    STATE(69), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3125] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(365), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(367), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3142] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(117), 1,
      sym_asset_expr,
    STATE(69), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3163] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(149), 1,
      sym_asset_expr,
    STATE(69), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3184] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(139), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3202] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(38), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3220] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(371), 1,
      anon_sym_BANG,
    ACTIONS(369), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3236] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(375), 1,
      anon_sym_BANG,
    ACTIONS(373), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3252] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(365), 1,
      anon_sym_BANG,
    ACTIONS(367), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3268] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(331), 1,
      sym_identifier,
    ACTIONS(333), 1,
      anon_sym_LPAREN,
    STATE(136), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3286] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(39), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3304] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(331), 1,
      sym_identifier,
    ACTIONS(333), 1,
      anon_sym_LPAREN,
    STATE(135), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3322] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(377), 1,
      anon_sym_LPAREN,
    ACTIONS(167), 7,
      anon_sym_DOT,
      anon_sym_LBRACK,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3338] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(357), 1,
      sym_identifier,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
    STATE(138), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [3356] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(381), 1,
      anon_sym_BANG,
    ACTIONS(379), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3372] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(383), 1,
      anon_sym_LPAREN,
    ACTIONS(387), 1,
      anon_sym_SLASH,
    ACTIONS(385), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [3390] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(391), 1,
      anon_sym_BANG,
    ACTIONS(389), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3406] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(395), 1,
      anon_sym_SLASH,
    ACTIONS(397), 1,
      anon_sym_CARET,
    ACTIONS(393), 5,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
  [3423] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(399), 1,
      anon_sym_RBRACE,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    STATE(442), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3444] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(407), 1,
      anon_sym_COMMA,
    STATE(126), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(405), 5,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3461] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(395), 1,
      anon_sym_SLASH,
    ACTIONS(397), 1,
      anon_sym_CARET,
    ACTIONS(393), 5,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
  [3478] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(407), 1,
      anon_sym_COMMA,
    STATE(115), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(409), 5,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3495] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(411), 1,
      anon_sym_RBRACE,
    STATE(454), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3516] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(397), 1,
      anon_sym_CARET,
    ACTIONS(413), 1,
      anon_sym_STAR,
    ACTIONS(415), 1,
      anon_sym_SLASH,
    ACTIONS(393), 4,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
  [3535] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(419), 1,
      anon_sym_SLASH,
    ACTIONS(417), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [3550] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(423), 1,
      anon_sym_SLASH,
    ACTIONS(421), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [3565] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(427), 1,
      anon_sym_SLASH,
    ACTIONS(425), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [3580] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(429), 1,
      anon_sym_RBRACE,
    STATE(459), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3601] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(431), 1,
      anon_sym_RBRACE,
    STATE(444), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3622] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(435), 1,
      anon_sym_SLASH,
    ACTIONS(433), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [3637] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(439), 1,
      anon_sym_COMMA,
    STATE(126), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(437), 5,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [3654] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(258), 1,
      sym_identifier,
    ACTIONS(442), 1,
      anon_sym_DOT,
    ACTIONS(444), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_STAR,
    ACTIONS(446), 3,
      anon_sym_DASH,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [3675] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(450), 1,
      anon_sym_RBRACE,
    STATE(430), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3696] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(452), 1,
      anon_sym_RBRACE,
    STATE(443), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3717] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(454), 1,
      anon_sym_RBRACE,
    STATE(458), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3738] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(184), 7,
      anon_sym_DOT,
      anon_sym_LBRACK,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3751] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(456), 1,
      anon_sym_RBRACE,
    STATE(452), 1,
      sym_asset_definition,
    STATE(172), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [3772] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(202), 7,
      anon_sym_DOT,
      anon_sym_LBRACK,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3785] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(198), 7,
      anon_sym_DOT,
      anon_sym_LBRACK,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3798] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(444), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_STAR,
    ACTIONS(188), 5,
      anon_sym_DOT,
      anon_sym_DASH,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3815] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(442), 1,
      anon_sym_DOT,
    ACTIONS(444), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_STAR,
    ACTIONS(188), 4,
      anon_sym_DASH,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3834] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(180), 7,
      anon_sym_DOT,
      anon_sym_LBRACK,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
      sym_identifier,
  [3847] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(190), 1,
      anon_sym_DOT,
    ACTIONS(192), 1,
      anon_sym_LBRACK,
    ACTIONS(196), 1,
      anon_sym_STAR,
    ACTIONS(458), 1,
      anon_sym_RPAREN,
    ACTIONS(262), 3,
      anon_sym_DASH,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [3868] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(190), 1,
      anon_sym_DOT,
    ACTIONS(192), 1,
      anon_sym_LBRACK,
    ACTIONS(196), 1,
      anon_sym_STAR,
    ACTIONS(460), 1,
      anon_sym_RPAREN,
    ACTIONS(262), 3,
      anon_sym_DASH,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [3889] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(390), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(462), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3905] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(263), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(464), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3921] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(397), 1,
      anon_sym_CARET,
    ACTIONS(413), 1,
      anon_sym_STAR,
    ACTIONS(415), 1,
      anon_sym_SLASH,
    ACTIONS(466), 1,
      anon_sym_RBRACK,
    ACTIONS(468), 2,
      anon_sym_PLUS,
      anon_sym_DASH,
  [3941] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(322), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(470), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3957] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(316), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(472), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3973] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(364), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(474), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3989] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(312), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(476), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4005] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(306), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(478), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4021] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(480), 1,
      anon_sym_RBRACE,
    ACTIONS(482), 1,
      anon_sym_let,
    ACTIONS(485), 1,
      sym_step_type,
    STATE(148), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [4039] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(437), 6,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [4051] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(488), 1,
      anon_sym_STAR,
    ACTIONS(490), 1,
      sym_integer,
    STATE(412), 1,
      sym_multiplicity_range,
    STATE(433), 1,
      sym_multiplicity,
    STATE(279), 2,
      sym__multiplicity_atom,
      sym_star,
  [4071] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(315), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(492), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4087] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(325), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(494), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4103] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(275), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(496), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4119] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(378), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(498), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4135] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(326), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(500), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4151] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(277), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(502), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4167] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(280), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(504), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4183] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(380), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(506), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4199] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(328), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(508), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4215] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(287), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(510), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4231] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(288), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(512), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4247] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(389), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(514), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4263] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(293), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(516), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4279] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(334), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(518), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4295] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(296), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(520), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4311] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(300), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(522), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4327] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(337), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(524), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4343] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(397), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(526), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4359] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(313), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(528), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4375] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(397), 1,
      anon_sym_CARET,
    ACTIONS(413), 1,
      anon_sym_STAR,
    ACTIONS(415), 1,
      anon_sym_SLASH,
    ACTIONS(530), 1,
      anon_sym_RBRACK,
    ACTIONS(468), 2,
      anon_sym_PLUS,
      anon_sym_DASH,
  [4395] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(339), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(532), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4411] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_let,
    ACTIONS(403), 1,
      sym_step_type,
    ACTIONS(534), 1,
      anon_sym_RBRACE,
    STATE(148), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [4429] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(397), 1,
      anon_sym_CARET,
    ACTIONS(413), 1,
      anon_sym_STAR,
    ACTIONS(415), 1,
      anon_sym_SLASH,
    ACTIONS(536), 1,
      anon_sym_RPAREN,
    ACTIONS(468), 2,
      anon_sym_PLUS,
      anon_sym_DASH,
  [4449] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(345), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(538), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4465] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(320), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(540), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4481] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(321), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(542), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4497] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(338), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(544), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4513] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(342), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(546), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4529] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(349), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(548), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4545] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(255), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(550), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4561] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(289), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(552), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4577] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(353), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(554), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4593] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(257), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(556), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4609] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(359), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(558), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4625] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(355), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(560), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4641] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(258), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(562), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4657] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(356), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(564), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4673] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(348), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(566), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4689] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(352), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(568), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4705] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(259), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(570), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4721] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(403), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(572), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4737] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(404), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(574), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4753] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(488), 1,
      anon_sym_STAR,
    ACTIONS(490), 1,
      sym_integer,
    STATE(412), 1,
      sym_multiplicity_range,
    STATE(449), 1,
      sym_multiplicity,
    STATE(279), 2,
      sym__multiplicity_atom,
      sym_star,
  [4773] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(249), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(576), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4789] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(406), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(578), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4805] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(363), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(580), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4821] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(265), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(582), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4837] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(400), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(584), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4853] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(399), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(586), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4869] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(373), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(588), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4885] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(396), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(590), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4901] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(267), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(592), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4917] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(286), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(594), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4933] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(379), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(596), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4949] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(248), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(598), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4965] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(272), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(600), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4981] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(388), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(602), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4997] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(382), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(604), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5013] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(385), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(606), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5029] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(276), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(608), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5045] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(383), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(610), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5061] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(407), 1,
      anon_sym_COMMA,
    STATE(230), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(612), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5076] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(614), 1,
      anon_sym_RBRACE,
    ACTIONS(616), 1,
      anon_sym_abstract,
    ACTIONS(619), 1,
      anon_sym_asset,
    STATE(213), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [5093] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(622), 1,
      sym_identifier,
    ACTIONS(624), 1,
      anon_sym_LBRACE,
    ACTIONS(626), 1,
      anon_sym_extends,
    STATE(243), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5110] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(628), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5121] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(622), 1,
      sym_identifier,
    ACTIONS(630), 1,
      anon_sym_LBRACE,
    ACTIONS(632), 1,
      anon_sym_extends,
    STATE(232), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5138] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(634), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5149] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(636), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5160] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(638), 1,
      anon_sym_RBRACE,
    ACTIONS(640), 1,
      anon_sym_abstract,
    ACTIONS(642), 1,
      anon_sym_asset,
    STATE(229), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [5177] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(644), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5188] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(640), 1,
      anon_sym_abstract,
    ACTIONS(642), 1,
      anon_sym_asset,
    ACTIONS(646), 1,
      anon_sym_RBRACE,
    STATE(213), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [5205] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(648), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5216] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(650), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5227] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(652), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5238] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(654), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5249] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(656), 1,
      sym_identifier,
    ACTIONS(279), 2,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5264] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(640), 1,
      anon_sym_abstract,
    ACTIONS(642), 1,
      anon_sym_asset,
    ACTIONS(659), 1,
      anon_sym_RBRACE,
    STATE(221), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [5281] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(661), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [5292] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(640), 1,
      anon_sym_abstract,
    ACTIONS(642), 1,
      anon_sym_asset,
    ACTIONS(663), 1,
      anon_sym_RBRACE,
    STATE(213), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [5309] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(407), 1,
      anon_sym_COMMA,
    STATE(126), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(665), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5324] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(667), 1,
      sym_identifier,
    ACTIONS(669), 1,
      anon_sym_LPAREN,
    STATE(79), 1,
      sym_detector_context,
    STATE(411), 1,
      sym_detector_name,
  [5340] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(673), 1,
      anon_sym_LBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5354] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(488), 1,
      anon_sym_STAR,
    ACTIONS(675), 1,
      sym_integer,
    STATE(420), 2,
      sym__multiplicity_atom,
      sym_star,
  [5368] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(677), 1,
      anon_sym_LBRACE,
    STATE(242), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5382] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(679), 1,
      anon_sym_LBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5396] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(681), 1,
      sym_identifier,
    ACTIONS(684), 1,
      anon_sym_RBRACE,
    STATE(238), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5410] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(686), 1,
      anon_sym_RPAREN,
    STATE(251), 1,
      sym__number,
    ACTIONS(688), 2,
      sym_integer,
      sym_float,
  [5424] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(690), 1,
      sym_identifier,
    ACTIONS(693), 1,
      anon_sym_RBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5438] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(695), 1,
      sym_identifier,
    ACTIONS(697), 1,
      anon_sym_RBRACE,
    STATE(247), 2,
      sym_association,
      aux_sym_associations_declaration_repeat1,
  [5452] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(699), 1,
      sym_identifier,
    STATE(466), 1,
      sym_step_causal_mode,
    ACTIONS(701), 2,
      anon_sym_action,
      anon_sym_effect,
  [5466] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(703), 1,
      anon_sym_LBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5480] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(705), 1,
      anon_sym_LBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5494] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(707), 1,
      anon_sym_LBRACE,
    STATE(226), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5508] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(695), 1,
      sym_identifier,
    ACTIONS(709), 1,
      anon_sym_RBRACE,
    STATE(239), 2,
      sym_association,
      aux_sym_associations_declaration_repeat1,
  [5522] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    STATE(241), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5536] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(671), 1,
      sym_identifier,
    ACTIONS(713), 1,
      anon_sym_LBRACE,
    STATE(235), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [5550] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(715), 1,
      sym_identifier,
    ACTIONS(718), 1,
      anon_sym_RBRACE,
    STATE(247), 2,
      sym_association,
      aux_sym_associations_declaration_repeat1,
  [5564] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(720), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5573] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(722), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5582] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(724), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5591] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(726), 1,
      anon_sym_COMMA,
    ACTIONS(728), 1,
      anon_sym_RPAREN,
    STATE(305), 1,
      aux_sym_ttc_distribution_repeat1,
  [5604] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(730), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5613] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(732), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5622] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(734), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5631] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(736), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5640] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(738), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5649] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(740), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5658] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(742), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5667] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(744), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5676] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(746), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5685] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(748), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5694] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(750), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5703] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(752), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5712] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(754), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5721] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(756), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5730] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(758), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5739] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(760), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5748] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(762), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5757] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(764), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5766] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(766), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5775] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(768), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5784] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(770), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5793] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(772), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5802] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(774), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5811] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(776), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5820] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(778), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5829] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(780), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5838] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(782), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5847] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(786), 1,
      anon_sym_DOT_DOT,
    ACTIONS(784), 2,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
  [5858] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(788), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5867] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(790), 1,
      anon_sym_DOT,
    ACTIONS(793), 1,
      anon_sym_LPAREN,
    STATE(281), 1,
      aux_sym_detector_name_repeat1,
  [5880] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(795), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5889] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(797), 3,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
      anon_sym_DOT_DOT,
  [5898] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(799), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5907] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(801), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5916] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(803), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5925] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(805), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5934] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(807), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5943] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(809), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5952] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(811), 1,
      anon_sym_COMMA,
    ACTIONS(813), 1,
      anon_sym_RPAREN,
    STATE(301), 1,
      aux_sym_detector_context_repeat1,
  [5965] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(815), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5974] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(817), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [5983] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(819), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [5992] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(821), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6001] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(823), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6010] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(825), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6019] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(827), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6028] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(829), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6037] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(831), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6046] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(833), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6055] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(835), 1,
      anon_sym_COMMA,
    ACTIONS(838), 1,
      anon_sym_RPAREN,
    STATE(301), 1,
      aux_sym_detector_context_repeat1,
  [6068] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(840), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6077] = 3,
    ACTIONS(3), 1,
      sym_comment,
    STATE(419), 1,
      sym__number,
    ACTIONS(842), 2,
      sym_integer,
      sym_float,
  [6088] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(844), 1,
      anon_sym_RBRACE,
    ACTIONS(846), 1,
      anon_sym_COMMA,
    STATE(304), 1,
      aux_sym_cias_repeat1,
  [6101] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(726), 1,
      anon_sym_COMMA,
    ACTIONS(849), 1,
      anon_sym_RPAREN,
    STATE(351), 1,
      aux_sym_ttc_distribution_repeat1,
  [6114] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(851), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6123] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(853), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6132] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(855), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6141] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(857), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6150] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(859), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6159] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(861), 1,
      anon_sym_RBRACE,
    ACTIONS(863), 1,
      anon_sym_COMMA,
    STATE(304), 1,
      aux_sym_cias_repeat1,
  [6172] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(865), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6181] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(867), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6190] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(869), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6199] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(871), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6208] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(873), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6217] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(875), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6226] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(877), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6235] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(363), 3,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      sym_identifier,
  [6244] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(879), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6253] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(881), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6262] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(883), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6271] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(885), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6280] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(887), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6289] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(889), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6298] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(891), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6307] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(893), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6316] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(895), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6325] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(897), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6334] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(899), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6343] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(901), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6352] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(903), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6361] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(905), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6370] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(907), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6379] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(811), 1,
      anon_sym_COMMA,
    ACTIONS(909), 1,
      anon_sym_RPAREN,
    STATE(290), 1,
      aux_sym_detector_context_repeat1,
  [6392] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(911), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6401] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(913), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6410] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(915), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6419] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(917), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6428] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(919), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6437] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(921), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6446] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(923), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6455] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(925), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6464] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(927), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6473] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(929), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6482] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(931), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6491] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(933), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6500] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(935), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6509] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(937), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6518] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(939), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6527] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(941), 1,
      anon_sym_COMMA,
    ACTIONS(944), 1,
      anon_sym_RPAREN,
    STATE(351), 1,
      aux_sym_ttc_distribution_repeat1,
  [6540] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(946), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6549] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(948), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6558] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(950), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6567] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(952), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6576] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(954), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6585] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(956), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6594] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(958), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6603] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(960), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6612] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(962), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6621] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(964), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6630] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(966), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6639] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(968), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6648] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(970), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6657] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(972), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6666] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(974), 1,
      anon_sym_DOT,
    ACTIONS(976), 1,
      anon_sym_LPAREN,
    STATE(281), 1,
      aux_sym_detector_name_repeat1,
  [6679] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(978), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6688] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(980), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6697] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(982), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6706] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(984), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6715] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(986), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6724] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(988), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6733] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(990), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6742] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(992), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [6751] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(994), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6760] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(996), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6769] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(998), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6778] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1000), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6787] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1002), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6796] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1004), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6805] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1006), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6814] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1008), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6823] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1010), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6832] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1012), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6841] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1014), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6850] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1016), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6859] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1018), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6868] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1020), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6877] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1022), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6886] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1024), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6895] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1026), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6904] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1028), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6913] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1030), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6922] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1032), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6931] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1034), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6940] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1036), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6949] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1038), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6958] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1040), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6967] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1042), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6976] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1044), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [6985] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(863), 1,
      anon_sym_COMMA,
    ACTIONS(1046), 1,
      anon_sym_RBRACE,
    STATE(311), 1,
      aux_sym_cias_repeat1,
  [6998] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1048), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [7007] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1050), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [7016] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1052), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [7025] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1054), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [7034] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1056), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [7043] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(974), 1,
      anon_sym_DOT,
    ACTIONS(1058), 1,
      anon_sym_LPAREN,
    STATE(366), 1,
      aux_sym_detector_name_repeat1,
  [7056] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1060), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [7065] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1062), 1,
      sym_cia,
    STATE(451), 1,
      sym_cias,
  [7075] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1062), 1,
      sym_cia,
    STATE(456), 1,
      sym_cias,
  [7085] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(669), 1,
      anon_sym_LPAREN,
    STATE(80), 1,
      sym_detector_context,
  [7095] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(784), 2,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
  [7103] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(793), 2,
      anon_sym_DOT,
      anon_sym_LPAREN,
  [7111] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1064), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [7119] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1062), 1,
      sym_cia,
    STATE(423), 1,
      sym_cias,
  [7129] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(838), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [7137] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(844), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [7145] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1062), 1,
      sym_cia,
    STATE(440), 1,
      sym_cias,
  [7155] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(944), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [7163] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1066), 2,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
  [7171] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1068), 1,
      sym_identifier,
  [7178] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1070), 1,
      sym_identifier,
  [7185] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1072), 1,
      anon_sym_RBRACE,
  [7192] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1074), 1,
      sym_identifier,
  [7199] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1076), 1,
      anon_sym_DASH_DASH_GT,
  [7206] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1078), 1,
      sym_string,
  [7213] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1080), 1,
      sym_identifier,
  [7220] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1082), 1,
      sym_string,
  [7227] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1084), 1,
      anon_sym_RBRACK,
  [7234] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1086), 1,
      anon_sym_RBRACE,
  [7241] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1088), 1,
      anon_sym_RBRACK,
  [7248] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1090), 1,
      sym_identifier,
  [7255] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1092), 1,
      anon_sym_LBRACK,
  [7262] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1094), 1,
      sym_identifier,
  [7269] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1096), 1,
      anon_sym_RBRACK,
  [7276] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1098), 1,
      sym_cia,
  [7283] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1100), 1,
      sym_identifier,
  [7290] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1102), 1,
      anon_sym_COLON,
  [7297] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1104), 1,
      sym_identifier,
  [7304] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1106), 1,
      anon_sym_RBRACE,
  [7311] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1108), 1,
      anon_sym_asset,
  [7318] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1110), 1,
      anon_sym_RBRACE,
  [7325] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1112), 1,
      anon_sym_RBRACE,
  [7332] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1114), 1,
      anon_sym_RBRACE,
  [7339] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1116), 1,
      sym_identifier,
  [7346] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1118), 1,
      sym_identifier,
  [7353] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1120), 1,
      anon_sym_RPAREN,
  [7360] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1122), 1,
      sym_identifier,
  [7367] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1124), 1,
      anon_sym_LT_DASH_DASH,
  [7374] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1126), 1,
      sym_identifier,
  [7381] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1128), 1,
      anon_sym_RBRACE,
  [7388] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1130), 1,
      anon_sym_RBRACE,
  [7395] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1132), 1,
      anon_sym_LBRACK,
  [7402] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1134), 1,
      anon_sym_RBRACE,
  [7409] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1136), 1,
      sym_string,
  [7416] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1138), 1,
      anon_sym_RBRACE,
  [7423] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1140), 1,
      anon_sym_info,
  [7430] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1142), 1,
      anon_sym_RBRACE,
  [7437] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1144), 1,
      anon_sym_RBRACE,
  [7444] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1146), 1,
      anon_sym_COLON,
  [7451] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1148), 1,
      anon_sym_EQ,
  [7458] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1150), 1,
      sym_identifier,
  [7465] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1152), 1,
      sym_identifier,
  [7472] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1154), 1,
      ts_builtin_sym_end,
  [7479] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1156), 1,
      sym_string,
  [7486] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1158), 1,
      sym_identifier,
  [7493] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1160), 1,
      anon_sym_LBRACE,
  [7500] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1162), 1,
      anon_sym_RPAREN,
  [7507] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1164), 1,
      anon_sym_RBRACK,
  [7514] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1166), 1,
      anon_sym_COLON,
  [7521] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1168), 1,
      sym_identifier,
  [7528] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1170), 1,
      sym_identifier,
  [7535] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1172), 1,
      sym_identifier,
  [7542] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1174), 1,
      anon_sym_info,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(2)] = 0,
  [SMALL_STATE(3)] = 56,
  [SMALL_STATE(4)] = 112,
  [SMALL_STATE(5)] = 168,
  [SMALL_STATE(6)] = 224,
  [SMALL_STATE(7)] = 271,
  [SMALL_STATE(8)] = 318,
  [SMALL_STATE(9)] = 365,
  [SMALL_STATE(10)] = 412,
  [SMALL_STATE(11)] = 453,
  [SMALL_STATE(12)] = 494,
  [SMALL_STATE(13)] = 535,
  [SMALL_STATE(14)] = 576,
  [SMALL_STATE(15)] = 617,
  [SMALL_STATE(16)] = 658,
  [SMALL_STATE(17)] = 699,
  [SMALL_STATE(18)] = 740,
  [SMALL_STATE(19)] = 781,
  [SMALL_STATE(20)] = 822,
  [SMALL_STATE(21)] = 863,
  [SMALL_STATE(22)] = 904,
  [SMALL_STATE(23)] = 945,
  [SMALL_STATE(24)] = 986,
  [SMALL_STATE(25)] = 1027,
  [SMALL_STATE(26)] = 1068,
  [SMALL_STATE(27)] = 1109,
  [SMALL_STATE(28)] = 1150,
  [SMALL_STATE(29)] = 1191,
  [SMALL_STATE(30)] = 1232,
  [SMALL_STATE(31)] = 1273,
  [SMALL_STATE(32)] = 1314,
  [SMALL_STATE(33)] = 1355,
  [SMALL_STATE(34)] = 1396,
  [SMALL_STATE(35)] = 1420,
  [SMALL_STATE(36)] = 1445,
  [SMALL_STATE(37)] = 1466,
  [SMALL_STATE(38)] = 1487,
  [SMALL_STATE(39)] = 1514,
  [SMALL_STATE(40)] = 1539,
  [SMALL_STATE(41)] = 1560,
  [SMALL_STATE(42)] = 1581,
  [SMALL_STATE(43)] = 1613,
  [SMALL_STATE(44)] = 1645,
  [SMALL_STATE(45)] = 1677,
  [SMALL_STATE(46)] = 1709,
  [SMALL_STATE(47)] = 1741,
  [SMALL_STATE(48)] = 1773,
  [SMALL_STATE(49)] = 1805,
  [SMALL_STATE(50)] = 1837,
  [SMALL_STATE(51)] = 1869,
  [SMALL_STATE(52)] = 1901,
  [SMALL_STATE(53)] = 1933,
  [SMALL_STATE(54)] = 1965,
  [SMALL_STATE(55)] = 1997,
  [SMALL_STATE(56)] = 2029,
  [SMALL_STATE(57)] = 2061,
  [SMALL_STATE(58)] = 2093,
  [SMALL_STATE(59)] = 2125,
  [SMALL_STATE(60)] = 2157,
  [SMALL_STATE(61)] = 2189,
  [SMALL_STATE(62)] = 2221,
  [SMALL_STATE(63)] = 2253,
  [SMALL_STATE(64)] = 2285,
  [SMALL_STATE(65)] = 2317,
  [SMALL_STATE(66)] = 2337,
  [SMALL_STATE(67)] = 2369,
  [SMALL_STATE(68)] = 2401,
  [SMALL_STATE(69)] = 2433,
  [SMALL_STATE(70)] = 2461,
  [SMALL_STATE(71)] = 2493,
  [SMALL_STATE(72)] = 2525,
  [SMALL_STATE(73)] = 2557,
  [SMALL_STATE(74)] = 2589,
  [SMALL_STATE(75)] = 2621,
  [SMALL_STATE(76)] = 2653,
  [SMALL_STATE(77)] = 2676,
  [SMALL_STATE(78)] = 2705,
  [SMALL_STATE(79)] = 2734,
  [SMALL_STATE(80)] = 2759,
  [SMALL_STATE(81)] = 2784,
  [SMALL_STATE(82)] = 2806,
  [SMALL_STATE(83)] = 2828,
  [SMALL_STATE(84)] = 2846,
  [SMALL_STATE(85)] = 2868,
  [SMALL_STATE(86)] = 2890,
  [SMALL_STATE(87)] = 2914,
  [SMALL_STATE(88)] = 2936,
  [SMALL_STATE(89)] = 2954,
  [SMALL_STATE(90)] = 2978,
  [SMALL_STATE(91)] = 3000,
  [SMALL_STATE(92)] = 3022,
  [SMALL_STATE(93)] = 3044,
  [SMALL_STATE(94)] = 3066,
  [SMALL_STATE(95)] = 3087,
  [SMALL_STATE(96)] = 3104,
  [SMALL_STATE(97)] = 3125,
  [SMALL_STATE(98)] = 3142,
  [SMALL_STATE(99)] = 3163,
  [SMALL_STATE(100)] = 3184,
  [SMALL_STATE(101)] = 3202,
  [SMALL_STATE(102)] = 3220,
  [SMALL_STATE(103)] = 3236,
  [SMALL_STATE(104)] = 3252,
  [SMALL_STATE(105)] = 3268,
  [SMALL_STATE(106)] = 3286,
  [SMALL_STATE(107)] = 3304,
  [SMALL_STATE(108)] = 3322,
  [SMALL_STATE(109)] = 3338,
  [SMALL_STATE(110)] = 3356,
  [SMALL_STATE(111)] = 3372,
  [SMALL_STATE(112)] = 3390,
  [SMALL_STATE(113)] = 3406,
  [SMALL_STATE(114)] = 3423,
  [SMALL_STATE(115)] = 3444,
  [SMALL_STATE(116)] = 3461,
  [SMALL_STATE(117)] = 3478,
  [SMALL_STATE(118)] = 3495,
  [SMALL_STATE(119)] = 3516,
  [SMALL_STATE(120)] = 3535,
  [SMALL_STATE(121)] = 3550,
  [SMALL_STATE(122)] = 3565,
  [SMALL_STATE(123)] = 3580,
  [SMALL_STATE(124)] = 3601,
  [SMALL_STATE(125)] = 3622,
  [SMALL_STATE(126)] = 3637,
  [SMALL_STATE(127)] = 3654,
  [SMALL_STATE(128)] = 3675,
  [SMALL_STATE(129)] = 3696,
  [SMALL_STATE(130)] = 3717,
  [SMALL_STATE(131)] = 3738,
  [SMALL_STATE(132)] = 3751,
  [SMALL_STATE(133)] = 3772,
  [SMALL_STATE(134)] = 3785,
  [SMALL_STATE(135)] = 3798,
  [SMALL_STATE(136)] = 3815,
  [SMALL_STATE(137)] = 3834,
  [SMALL_STATE(138)] = 3847,
  [SMALL_STATE(139)] = 3868,
  [SMALL_STATE(140)] = 3889,
  [SMALL_STATE(141)] = 3905,
  [SMALL_STATE(142)] = 3921,
  [SMALL_STATE(143)] = 3941,
  [SMALL_STATE(144)] = 3957,
  [SMALL_STATE(145)] = 3973,
  [SMALL_STATE(146)] = 3989,
  [SMALL_STATE(147)] = 4005,
  [SMALL_STATE(148)] = 4021,
  [SMALL_STATE(149)] = 4039,
  [SMALL_STATE(150)] = 4051,
  [SMALL_STATE(151)] = 4071,
  [SMALL_STATE(152)] = 4087,
  [SMALL_STATE(153)] = 4103,
  [SMALL_STATE(154)] = 4119,
  [SMALL_STATE(155)] = 4135,
  [SMALL_STATE(156)] = 4151,
  [SMALL_STATE(157)] = 4167,
  [SMALL_STATE(158)] = 4183,
  [SMALL_STATE(159)] = 4199,
  [SMALL_STATE(160)] = 4215,
  [SMALL_STATE(161)] = 4231,
  [SMALL_STATE(162)] = 4247,
  [SMALL_STATE(163)] = 4263,
  [SMALL_STATE(164)] = 4279,
  [SMALL_STATE(165)] = 4295,
  [SMALL_STATE(166)] = 4311,
  [SMALL_STATE(167)] = 4327,
  [SMALL_STATE(168)] = 4343,
  [SMALL_STATE(169)] = 4359,
  [SMALL_STATE(170)] = 4375,
  [SMALL_STATE(171)] = 4395,
  [SMALL_STATE(172)] = 4411,
  [SMALL_STATE(173)] = 4429,
  [SMALL_STATE(174)] = 4449,
  [SMALL_STATE(175)] = 4465,
  [SMALL_STATE(176)] = 4481,
  [SMALL_STATE(177)] = 4497,
  [SMALL_STATE(178)] = 4513,
  [SMALL_STATE(179)] = 4529,
  [SMALL_STATE(180)] = 4545,
  [SMALL_STATE(181)] = 4561,
  [SMALL_STATE(182)] = 4577,
  [SMALL_STATE(183)] = 4593,
  [SMALL_STATE(184)] = 4609,
  [SMALL_STATE(185)] = 4625,
  [SMALL_STATE(186)] = 4641,
  [SMALL_STATE(187)] = 4657,
  [SMALL_STATE(188)] = 4673,
  [SMALL_STATE(189)] = 4689,
  [SMALL_STATE(190)] = 4705,
  [SMALL_STATE(191)] = 4721,
  [SMALL_STATE(192)] = 4737,
  [SMALL_STATE(193)] = 4753,
  [SMALL_STATE(194)] = 4773,
  [SMALL_STATE(195)] = 4789,
  [SMALL_STATE(196)] = 4805,
  [SMALL_STATE(197)] = 4821,
  [SMALL_STATE(198)] = 4837,
  [SMALL_STATE(199)] = 4853,
  [SMALL_STATE(200)] = 4869,
  [SMALL_STATE(201)] = 4885,
  [SMALL_STATE(202)] = 4901,
  [SMALL_STATE(203)] = 4917,
  [SMALL_STATE(204)] = 4933,
  [SMALL_STATE(205)] = 4949,
  [SMALL_STATE(206)] = 4965,
  [SMALL_STATE(207)] = 4981,
  [SMALL_STATE(208)] = 4997,
  [SMALL_STATE(209)] = 5013,
  [SMALL_STATE(210)] = 5029,
  [SMALL_STATE(211)] = 5045,
  [SMALL_STATE(212)] = 5061,
  [SMALL_STATE(213)] = 5076,
  [SMALL_STATE(214)] = 5093,
  [SMALL_STATE(215)] = 5110,
  [SMALL_STATE(216)] = 5121,
  [SMALL_STATE(217)] = 5138,
  [SMALL_STATE(218)] = 5149,
  [SMALL_STATE(219)] = 5160,
  [SMALL_STATE(220)] = 5177,
  [SMALL_STATE(221)] = 5188,
  [SMALL_STATE(222)] = 5205,
  [SMALL_STATE(223)] = 5216,
  [SMALL_STATE(224)] = 5227,
  [SMALL_STATE(225)] = 5238,
  [SMALL_STATE(226)] = 5249,
  [SMALL_STATE(227)] = 5264,
  [SMALL_STATE(228)] = 5281,
  [SMALL_STATE(229)] = 5292,
  [SMALL_STATE(230)] = 5309,
  [SMALL_STATE(231)] = 5324,
  [SMALL_STATE(232)] = 5340,
  [SMALL_STATE(233)] = 5354,
  [SMALL_STATE(234)] = 5368,
  [SMALL_STATE(235)] = 5382,
  [SMALL_STATE(236)] = 5396,
  [SMALL_STATE(237)] = 5410,
  [SMALL_STATE(238)] = 5424,
  [SMALL_STATE(239)] = 5438,
  [SMALL_STATE(240)] = 5452,
  [SMALL_STATE(241)] = 5466,
  [SMALL_STATE(242)] = 5480,
  [SMALL_STATE(243)] = 5494,
  [SMALL_STATE(244)] = 5508,
  [SMALL_STATE(245)] = 5522,
  [SMALL_STATE(246)] = 5536,
  [SMALL_STATE(247)] = 5550,
  [SMALL_STATE(248)] = 5564,
  [SMALL_STATE(249)] = 5573,
  [SMALL_STATE(250)] = 5582,
  [SMALL_STATE(251)] = 5591,
  [SMALL_STATE(252)] = 5604,
  [SMALL_STATE(253)] = 5613,
  [SMALL_STATE(254)] = 5622,
  [SMALL_STATE(255)] = 5631,
  [SMALL_STATE(256)] = 5640,
  [SMALL_STATE(257)] = 5649,
  [SMALL_STATE(258)] = 5658,
  [SMALL_STATE(259)] = 5667,
  [SMALL_STATE(260)] = 5676,
  [SMALL_STATE(261)] = 5685,
  [SMALL_STATE(262)] = 5694,
  [SMALL_STATE(263)] = 5703,
  [SMALL_STATE(264)] = 5712,
  [SMALL_STATE(265)] = 5721,
  [SMALL_STATE(266)] = 5730,
  [SMALL_STATE(267)] = 5739,
  [SMALL_STATE(268)] = 5748,
  [SMALL_STATE(269)] = 5757,
  [SMALL_STATE(270)] = 5766,
  [SMALL_STATE(271)] = 5775,
  [SMALL_STATE(272)] = 5784,
  [SMALL_STATE(273)] = 5793,
  [SMALL_STATE(274)] = 5802,
  [SMALL_STATE(275)] = 5811,
  [SMALL_STATE(276)] = 5820,
  [SMALL_STATE(277)] = 5829,
  [SMALL_STATE(278)] = 5838,
  [SMALL_STATE(279)] = 5847,
  [SMALL_STATE(280)] = 5858,
  [SMALL_STATE(281)] = 5867,
  [SMALL_STATE(282)] = 5880,
  [SMALL_STATE(283)] = 5889,
  [SMALL_STATE(284)] = 5898,
  [SMALL_STATE(285)] = 5907,
  [SMALL_STATE(286)] = 5916,
  [SMALL_STATE(287)] = 5925,
  [SMALL_STATE(288)] = 5934,
  [SMALL_STATE(289)] = 5943,
  [SMALL_STATE(290)] = 5952,
  [SMALL_STATE(291)] = 5965,
  [SMALL_STATE(292)] = 5974,
  [SMALL_STATE(293)] = 5983,
  [SMALL_STATE(294)] = 5992,
  [SMALL_STATE(295)] = 6001,
  [SMALL_STATE(296)] = 6010,
  [SMALL_STATE(297)] = 6019,
  [SMALL_STATE(298)] = 6028,
  [SMALL_STATE(299)] = 6037,
  [SMALL_STATE(300)] = 6046,
  [SMALL_STATE(301)] = 6055,
  [SMALL_STATE(302)] = 6068,
  [SMALL_STATE(303)] = 6077,
  [SMALL_STATE(304)] = 6088,
  [SMALL_STATE(305)] = 6101,
  [SMALL_STATE(306)] = 6114,
  [SMALL_STATE(307)] = 6123,
  [SMALL_STATE(308)] = 6132,
  [SMALL_STATE(309)] = 6141,
  [SMALL_STATE(310)] = 6150,
  [SMALL_STATE(311)] = 6159,
  [SMALL_STATE(312)] = 6172,
  [SMALL_STATE(313)] = 6181,
  [SMALL_STATE(314)] = 6190,
  [SMALL_STATE(315)] = 6199,
  [SMALL_STATE(316)] = 6208,
  [SMALL_STATE(317)] = 6217,
  [SMALL_STATE(318)] = 6226,
  [SMALL_STATE(319)] = 6235,
  [SMALL_STATE(320)] = 6244,
  [SMALL_STATE(321)] = 6253,
  [SMALL_STATE(322)] = 6262,
  [SMALL_STATE(323)] = 6271,
  [SMALL_STATE(324)] = 6280,
  [SMALL_STATE(325)] = 6289,
  [SMALL_STATE(326)] = 6298,
  [SMALL_STATE(327)] = 6307,
  [SMALL_STATE(328)] = 6316,
  [SMALL_STATE(329)] = 6325,
  [SMALL_STATE(330)] = 6334,
  [SMALL_STATE(331)] = 6343,
  [SMALL_STATE(332)] = 6352,
  [SMALL_STATE(333)] = 6361,
  [SMALL_STATE(334)] = 6370,
  [SMALL_STATE(335)] = 6379,
  [SMALL_STATE(336)] = 6392,
  [SMALL_STATE(337)] = 6401,
  [SMALL_STATE(338)] = 6410,
  [SMALL_STATE(339)] = 6419,
  [SMALL_STATE(340)] = 6428,
  [SMALL_STATE(341)] = 6437,
  [SMALL_STATE(342)] = 6446,
  [SMALL_STATE(343)] = 6455,
  [SMALL_STATE(344)] = 6464,
  [SMALL_STATE(345)] = 6473,
  [SMALL_STATE(346)] = 6482,
  [SMALL_STATE(347)] = 6491,
  [SMALL_STATE(348)] = 6500,
  [SMALL_STATE(349)] = 6509,
  [SMALL_STATE(350)] = 6518,
  [SMALL_STATE(351)] = 6527,
  [SMALL_STATE(352)] = 6540,
  [SMALL_STATE(353)] = 6549,
  [SMALL_STATE(354)] = 6558,
  [SMALL_STATE(355)] = 6567,
  [SMALL_STATE(356)] = 6576,
  [SMALL_STATE(357)] = 6585,
  [SMALL_STATE(358)] = 6594,
  [SMALL_STATE(359)] = 6603,
  [SMALL_STATE(360)] = 6612,
  [SMALL_STATE(361)] = 6621,
  [SMALL_STATE(362)] = 6630,
  [SMALL_STATE(363)] = 6639,
  [SMALL_STATE(364)] = 6648,
  [SMALL_STATE(365)] = 6657,
  [SMALL_STATE(366)] = 6666,
  [SMALL_STATE(367)] = 6679,
  [SMALL_STATE(368)] = 6688,
  [SMALL_STATE(369)] = 6697,
  [SMALL_STATE(370)] = 6706,
  [SMALL_STATE(371)] = 6715,
  [SMALL_STATE(372)] = 6724,
  [SMALL_STATE(373)] = 6733,
  [SMALL_STATE(374)] = 6742,
  [SMALL_STATE(375)] = 6751,
  [SMALL_STATE(376)] = 6760,
  [SMALL_STATE(377)] = 6769,
  [SMALL_STATE(378)] = 6778,
  [SMALL_STATE(379)] = 6787,
  [SMALL_STATE(380)] = 6796,
  [SMALL_STATE(381)] = 6805,
  [SMALL_STATE(382)] = 6814,
  [SMALL_STATE(383)] = 6823,
  [SMALL_STATE(384)] = 6832,
  [SMALL_STATE(385)] = 6841,
  [SMALL_STATE(386)] = 6850,
  [SMALL_STATE(387)] = 6859,
  [SMALL_STATE(388)] = 6868,
  [SMALL_STATE(389)] = 6877,
  [SMALL_STATE(390)] = 6886,
  [SMALL_STATE(391)] = 6895,
  [SMALL_STATE(392)] = 6904,
  [SMALL_STATE(393)] = 6913,
  [SMALL_STATE(394)] = 6922,
  [SMALL_STATE(395)] = 6931,
  [SMALL_STATE(396)] = 6940,
  [SMALL_STATE(397)] = 6949,
  [SMALL_STATE(398)] = 6958,
  [SMALL_STATE(399)] = 6967,
  [SMALL_STATE(400)] = 6976,
  [SMALL_STATE(401)] = 6985,
  [SMALL_STATE(402)] = 6998,
  [SMALL_STATE(403)] = 7007,
  [SMALL_STATE(404)] = 7016,
  [SMALL_STATE(405)] = 7025,
  [SMALL_STATE(406)] = 7034,
  [SMALL_STATE(407)] = 7043,
  [SMALL_STATE(408)] = 7056,
  [SMALL_STATE(409)] = 7065,
  [SMALL_STATE(410)] = 7075,
  [SMALL_STATE(411)] = 7085,
  [SMALL_STATE(412)] = 7095,
  [SMALL_STATE(413)] = 7103,
  [SMALL_STATE(414)] = 7111,
  [SMALL_STATE(415)] = 7119,
  [SMALL_STATE(416)] = 7129,
  [SMALL_STATE(417)] = 7137,
  [SMALL_STATE(418)] = 7145,
  [SMALL_STATE(419)] = 7155,
  [SMALL_STATE(420)] = 7163,
  [SMALL_STATE(421)] = 7171,
  [SMALL_STATE(422)] = 7178,
  [SMALL_STATE(423)] = 7185,
  [SMALL_STATE(424)] = 7192,
  [SMALL_STATE(425)] = 7199,
  [SMALL_STATE(426)] = 7206,
  [SMALL_STATE(427)] = 7213,
  [SMALL_STATE(428)] = 7220,
  [SMALL_STATE(429)] = 7227,
  [SMALL_STATE(430)] = 7234,
  [SMALL_STATE(431)] = 7241,
  [SMALL_STATE(432)] = 7248,
  [SMALL_STATE(433)] = 7255,
  [SMALL_STATE(434)] = 7262,
  [SMALL_STATE(435)] = 7269,
  [SMALL_STATE(436)] = 7276,
  [SMALL_STATE(437)] = 7283,
  [SMALL_STATE(438)] = 7290,
  [SMALL_STATE(439)] = 7297,
  [SMALL_STATE(440)] = 7304,
  [SMALL_STATE(441)] = 7311,
  [SMALL_STATE(442)] = 7318,
  [SMALL_STATE(443)] = 7325,
  [SMALL_STATE(444)] = 7332,
  [SMALL_STATE(445)] = 7339,
  [SMALL_STATE(446)] = 7346,
  [SMALL_STATE(447)] = 7353,
  [SMALL_STATE(448)] = 7360,
  [SMALL_STATE(449)] = 7367,
  [SMALL_STATE(450)] = 7374,
  [SMALL_STATE(451)] = 7381,
  [SMALL_STATE(452)] = 7388,
  [SMALL_STATE(453)] = 7395,
  [SMALL_STATE(454)] = 7402,
  [SMALL_STATE(455)] = 7409,
  [SMALL_STATE(456)] = 7416,
  [SMALL_STATE(457)] = 7423,
  [SMALL_STATE(458)] = 7430,
  [SMALL_STATE(459)] = 7437,
  [SMALL_STATE(460)] = 7444,
  [SMALL_STATE(461)] = 7451,
  [SMALL_STATE(462)] = 7458,
  [SMALL_STATE(463)] = 7465,
  [SMALL_STATE(464)] = 7472,
  [SMALL_STATE(465)] = 7479,
  [SMALL_STATE(466)] = 7486,
  [SMALL_STATE(467)] = 7493,
  [SMALL_STATE(468)] = 7500,
  [SMALL_STATE(469)] = 7507,
  [SMALL_STATE(470)] = 7514,
  [SMALL_STATE(471)] = 7521,
  [SMALL_STATE(472)] = 7528,
  [SMALL_STATE(473)] = 7535,
  [SMALL_STATE(474)] = 7542,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0),
  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428),
  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472),
  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471),
  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467),
  [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(474),
  [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
  [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409),
  [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 47),
  [23] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, .production_id = 47),
  [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(231),
  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231),
  [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
  [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
  [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418),
  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 2, .production_id = 9),
  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 2, .production_id = 9),
  [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
  [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 17),
  [47] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, .production_id = 17),
  [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415),
  [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 19),
  [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, .production_id = 19),
  [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 54),
  [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, .production_id = 54),
  [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 124),
  [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, .production_id = 124),
  [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 113),
  [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, .production_id = 113),
  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 179),
  [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, .production_id = 179),
  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 15),
  [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, .production_id = 15),
  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 261),
  [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 9, .production_id = 261),
  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 172),
  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, .production_id = 172),
  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 39),
  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, .production_id = 39),
  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 38),
  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, .production_id = 38),
  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 16),
  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, .production_id = 16),
  [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 162),
  [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, .production_id = 162),
  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 31),
  [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, .production_id = 31),
  [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 91),
  [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, .production_id = 91),
  [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 161),
  [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, .production_id = 161),
  [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 72),
  [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, .production_id = 72),
  [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 171),
  [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, .production_id = 171),
  [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 149),
  [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, .production_id = 149),
  [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 90),
  [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, .production_id = 90),
  [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 101),
  [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, .production_id = 101),
  [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 102),
  [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, .production_id = 102),
  [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 83),
  [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, .production_id = 83),
  [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 226),
  [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 8, .production_id = 226),
  [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 225),
  [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 8, .production_id = 225),
  [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 45),
  [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, .production_id = 45),
  [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 46),
  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, .production_id = 46),
  [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 215),
  [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 8, .production_id = 215),
  [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 137),
  [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, .production_id = 137),
  [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 204),
  [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 8, .production_id = 204),
  [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__asset_expr_primary, 1),
  [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
  [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__asset_expr_primary, 1),
  [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attack_step_repeat1, 2),
  [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat1, 2),
  [177] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat1, 2), SHIFT_REPEAT(434),
  [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr_type, 4, .production_id = 145),
  [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_expr_type, 4, .production_id = 145),
  [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr_unop, 2, .production_id = 53),
  [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_expr_unop, 2, .production_id = 53),
  [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr_binop, 3, .production_id = 98),
  [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
  [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421),
  [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_expr_binop, 3, .production_id = 98),
  [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
  [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_variable_substitution, 3, .production_id = 97),
  [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_variable_substitution, 3, .production_id = 97),
  [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__inline_asset_expr, 3),
  [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__inline_asset_expr, 3),
  [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 241),
  [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 128),
  [210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 173),
  [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 63),
  [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 163),
  [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 73),
  [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 76),
  [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 84),
  [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 87),
  [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 153),
  [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 150),
  [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 48),
  [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 193),
  [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 141),
  [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 40),
  [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 138),
  [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 205),
  [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 265),
  [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 208),
  [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 117),
  [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 216),
  [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 18),
  [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 35),
  [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 32),
  [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 219),
  [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 183),
  [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr, 1),
  [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101),
  [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
  [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 92),
  [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 284),
  [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 103),
  [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 227),
  [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 251),
  [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 262),
  [276] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_category_declaration_repeat1, 2), SHIFT_REPEAT(474),
  [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat1, 2),
  [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_category_declaration_repeat1, 2),
  [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
  [285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(428),
  [288] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(472),
  [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(471),
  [294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(467),
  [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
  [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
  [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 2, .production_id = 25),
  [303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 2, .production_id = 25),
  [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
  [307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
  [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 3, .production_id = 55),
  [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 3, .production_id = 55),
  [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111),
  [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
  [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113),
  [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170),
  [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector_context, 3),
  [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_context, 3),
  [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 4, .production_id = 105),
  [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 4, .production_id = 105),
  [329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119),
  [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
  [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
  [335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116),
  [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector_context, 4),
  [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_context, 4),
  [341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173),
  [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat2, 2),
  [345] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attack_step_repeat2, 2), SHIFT_REPEAT(231),
  [348] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat2, 2), SHIFT_REPEAT(231),
  [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 3, .production_id = 56),
  [353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 3, .production_id = 56),
  [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142),
  [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
  [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta, 4, .production_id = 6),
  [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 4, .production_id = 6),
  [365] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc, 3),
  [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc, 3),
  [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 4, .production_id = 107),
  [371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 4, .production_id = 107),
  [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 4, .production_id = 106),
  [375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 4, .production_id = 106),
  [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468),
  [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 3, .production_id = 57),
  [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 3, .production_id = 57),
  [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237),
  [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__ttc_primary, 1),
  [387] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__ttc_primary, 1),
  [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 5, .production_id = 156),
  [391] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 5, .production_id = 156),
  [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_binop, 3, .production_id = 98),
  [395] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_binop, 3, .production_id = 98),
  [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
  [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
  [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439),
  [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
  [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preconditions, 3, .production_id = 58),
  [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
  [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preconditions, 2, .production_id = 26),
  [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362),
  [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
  [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81),
  [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_distribution, 3, .production_id = 97),
  [419] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_distribution, 3, .production_id = 97),
  [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__ttc_parenthesized, 3),
  [423] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__ttc_parenthesized, 3),
  [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_distribution, 4, .production_id = 157),
  [427] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_distribution, 4, .production_id = 157),
  [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266),
  [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302),
  [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_distribution, 5, .production_id = 200),
  [435] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_distribution, 5, .production_id = 200),
  [437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preconditions_repeat1, 2),
  [439] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preconditions_repeat1, 2), SHIFT_REPEAT(99),
  [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
  [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473),
  [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
  [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
  [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332),
  [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368),
  [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261),
  [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
  [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
  [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
  [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 202),
  [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 74),
  [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
  [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
  [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 126),
  [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 121),
  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 41),
  [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 115),
  [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 109),
  [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asset_definition_repeat1, 2),
  [482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asset_definition_repeat1, 2), SHIFT_REPEAT(439),
  [485] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asset_definition_repeat1, 2), SHIFT_REPEAT(240),
  [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283),
  [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
  [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 118),
  [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 129),
  [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 295),
  [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 36),
  [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 132),
  [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 288),
  [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 285),
  [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 13),
  [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 135),
  [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 282),
  [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 277),
  [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 33),
  [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 272),
  [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 139),
  [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 266),
  [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 263),
  [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 142),
  [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 29),
  [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 259),
  [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
  [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 147),
  [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_definition, 1),
  [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
  [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 151),
  [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 255),
  [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 252),
  [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 249),
  [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 245),
  [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 242),
  [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 61),
  [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 99),
  [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 239),
  [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 64),
  [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 43),
  [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 234),
  [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 67),
  [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 229),
  [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 154),
  [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 159),
  [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 70),
  [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 223),
  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 220),
  [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 165),
  [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 217),
  [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 169),
  [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 77),
  [584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 213),
  [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 209),
  [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 175),
  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 206),
  [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 81),
  [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 93),
  [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 181),
  [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 197),
  [600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 85),
  [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 194),
  [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 184),
  [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 191),
  [608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 88),
  [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 187),
  [612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reaching, 2, .production_id = 27),
  [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat2, 2),
  [616] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat2, 2), SHIFT_REPEAT(441),
  [619] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat2, 2), SHIFT_REPEAT(422),
  [622] = {.entry = {.count = 1, .reusable = false}}, SHIFT(457),
  [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
  [626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437),
  [628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 5, .production_id = 4),
  [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
  [632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(432),
  [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1),
  [636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include_declaration, 2, .production_id = 1),
  [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
  [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441),
  [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422),
  [644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 5, .production_id = 5),
  [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222),
  [648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 6, .production_id = 7),
  [650] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_associations_declaration, 4),
  [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_define_declaration, 4, .production_id = 3),
  [654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_associations_declaration, 3),
  [656] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat1, 2), SHIFT_REPEAT(457),
  [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220),
  [661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 4, .production_id = 2),
  [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
  [665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reaching, 3, .production_id = 59),
  [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407),
  [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
  [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457),
  [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
  [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420),
  [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
  [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
  [681] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_association, 13, .production_id = 269), SHIFT(457),
  [684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_association, 13, .production_id = 269),
  [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
  [688] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251),
  [690] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_association, 14, .production_id = 291), SHIFT(457),
  [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_association, 14, .production_id = 291),
  [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453),
  [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223),
  [699] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
  [701] = {.entry = {.count = 1, .reusable = false}}, SHIFT(462),
  [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227),
  [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
  [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
  [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
  [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219),
  [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
  [715] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_associations_declaration_repeat1, 2), SHIFT_REPEAT(453),
  [718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_associations_declaration_repeat1, 2),
  [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 237),
  [722] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 211),
  [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 5, .production_id = 10),
  [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303),
  [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
  [730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 37),
  [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 42),
  [734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, .production_id = 49),
  [736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 108),
  [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 110),
  [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 111),
  [742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 112),
  [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 114),
  [746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 116),
  [748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, .production_id = 50),
  [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 119),
  [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 120),
  [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 122),
  [756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 123),
  [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 5, .production_id = 8),
  [760] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 125),
  [762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 127),
  [764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 8, .production_id = 51),
  [766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 89),
  [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 130),
  [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 131),
  [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 8, .production_id = 52),
  [774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 133),
  [776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 12, .production_id = 299),
  [778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 134),
  [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 298),
  [782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 136),
  [784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multiplicity, 1),
  [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
  [788] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 297),
  [790] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_detector_name_repeat1, 2), SHIFT_REPEAT(424),
  [793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_detector_name_repeat1, 2),
  [795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 140),
  [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_star, 1),
  [799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 296),
  [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 143),
  [803] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 144),
  [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 294),
  [807] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 293),
  [809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 146),
  [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
  [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 148),
  [817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, .production_id = 11),
  [819] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, .production_id = 292),
  [821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, .production_id = 12),
  [823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 152),
  [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 290),
  [827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, .production_id = 100),
  [829] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 155),
  [831] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 289),
  [833] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 287),
  [835] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_detector_context_repeat1, 2), SHIFT_REPEAT(89),
  [838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_detector_context_repeat1, 2),
  [840] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 4, .production_id = 2),
  [842] = {.entry = {.count = 1, .reusable = false}}, SHIFT(419),
  [844] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cias_repeat1, 2),
  [846] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cias_repeat1, 2), SHIFT_REPEAT(436),
  [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
  [851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 158),
  [853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 286),
  [855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 160),
  [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 34),
  [859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 283),
  [861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cias, 2),
  [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436),
  [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 164),
  [867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 281),
  [869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 166),
  [871] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 167),
  [873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 168),
  [875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 9, .production_id = 96),
  [877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 170),
  [879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 280),
  [881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 279),
  [883] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 174),
  [885] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 8, .production_id = 95),
  [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 176),
  [889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 177),
  [891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 178),
  [893] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 94),
  [895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 180),
  [897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, .production_id = 14),
  [899] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 182),
  [901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 278),
  [903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, .production_id = 20),
  [905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 185),
  [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 186),
  [909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 188),
  [913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, .production_id = 189),
  [915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 276),
  [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 190),
  [919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 44),
  [921] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 192),
  [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 275),
  [925] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, .production_id = 21),
  [927] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 195),
  [929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 196),
  [931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 86),
  [933] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 198),
  [935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 199),
  [937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 274),
  [939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 273),
  [941] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_ttc_distribution_repeat1, 2), SHIFT_REPEAT(303),
  [944] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_ttc_distribution_repeat1, 2),
  [946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 201),
  [948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 271),
  [950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 203),
  [952] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, .production_id = 270),
  [954] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 268),
  [956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 82),
  [958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 207),
  [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 80),
  [962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 267),
  [964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 210),
  [966] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 5, .production_id = 5),
  [968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 212),
  [970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 79),
  [972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 214),
  [974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424),
  [976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_name, 2),
  [978] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 78),
  [980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, .production_id = 23),
  [982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 218),
  [984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 75),
  [986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 264),
  [988] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 221),
  [990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 222),
  [992] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, .production_id = 24),
  [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 224),
  [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 30),
  [998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 71),
  [1000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 69),
  [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 228),
  [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, .production_id = 28),
  [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 230),
  [1008] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 231),
  [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, .production_id = 232),
  [1012] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 260),
  [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 233),
  [1016] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 68),
  [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 235),
  [1020] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 236),
  [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 66),
  [1024] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 238),
  [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 65),
  [1028] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 240),
  [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_variable, 4, .production_id = 3),
  [1032] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 62),
  [1034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 243),
  [1036] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 244),
  [1038] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, .production_id = 60),
  [1040] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 246),
  [1042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 247),
  [1044] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 248),
  [1046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cias, 1),
  [1048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 250),
  [1050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 258),
  [1052] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 257),
  [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 253),
  [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 254),
  [1058] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_name, 1),
  [1060] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, .production_id = 256),
  [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401),
  [1064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_context_reference, 2, .production_id = 104),
  [1066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multiplicity_range, 3, .production_id = 22),
  [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435),
  [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
  [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
  [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413),
  [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
  [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319),
  [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414),
  [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218),
  [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463),
  [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254),
  [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
  [1090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
  [1092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446),
  [1094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
  [1096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
  [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417),
  [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246),
  [1102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426),
  [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461),
  [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
  [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448),
  [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374),
  [1112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269),
  [1114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250),
  [1116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431),
  [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429),
  [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
  [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
  [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450),
  [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425),
  [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
  [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
  [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445),
  [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343),
  [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224),
  [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
  [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438),
  [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323),
  [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
  [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455),
  [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
  [1150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_step_causal_mode, 1),
  [1152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
  [1154] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
  [1158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
  [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244),
  [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
  [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
  [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465),
  [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460),
  [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245),
  [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469),
  [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(470),
};

#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#define extern __declspec(dllexport)
#endif

extern const TSLanguage *tree_sitter_mal(void) {
  static const TSLanguage language = {
    .version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = ts_lex_modes,
    .lex_fn = ts_lex,
    .keyword_lex_fn = ts_lex_keywords,
    .keyword_capture_token = sym_identifier,
    .primary_state_ids = ts_primary_state_ids,
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
