From d7a86b0bebcb63d7da019749b21c954e8c8602fa Mon Sep 17 00:00:00 2001 From: xiyang Date: Tue, 26 Sep 2023 14:40:16 -0400 Subject: [PATCH] Add direct scan npy, add where predicate in LOAD FROM --- src/antlr4/Cypher.g4 | 2 +- src/binder/bind/bind_reading_clause.cpp | 33 +- src/binder/visitor/property_collector.cpp | 12 +- .../query/reading_clause/bound_load_from.h | 17 +- .../query/reading_clause/bound_match_clause.h | 14 +- .../binder/visitor/property_collector.h | 1 + .../parser/query/reading_clause/load_from.h | 7 + .../query/reading_clause/match_clause.h | 11 +- .../operator/persistent/reader/npy_reader.h | 3 +- .../transform/transform_reading_clause.cpp | 8 +- src/planner/plan/plan_read.cpp | 34 + .../persistent/reader/npy/npy_reader.cpp | 1 - test/test_files/copy/copy_to.test | 2 +- .../tinysnb/load_from/load_from.test | 37 +- third_party/antlr4_cypher/cypher_parser.cpp | 4119 +++++++++-------- .../antlr4_cypher/include/cypher_parser.h | 1 + 16 files changed, 2237 insertions(+), 2065 deletions(-) diff --git a/src/antlr4/Cypher.g4 b/src/antlr4/Cypher.g4 index bf45bb86f5..3df5cbbf02 100644 --- a/src/antlr4/Cypher.g4 +++ b/src/antlr4/Cypher.g4 @@ -255,7 +255,7 @@ oC_ReadingClause ; kU_LoadFrom - : LOAD SP FROM SP kU_FilePaths ( SP? '(' SP? kU_ParsingOptions SP? ')' )? ; + : LOAD SP FROM SP kU_FilePaths ( SP? '(' SP? kU_ParsingOptions SP? ')' )? (SP? oC_Where)? ; LOAD : ( 'L' | 'l' ) ( 'O' | 'o' ) ( 'A' | 'a' ) ( 'D' | 'd' ) ; diff --git a/src/binder/bind/bind_reading_clause.cpp b/src/binder/bind/bind_reading_clause.cpp index 7d81f94293..1a508dd27d 100644 --- a/src/binder/bind/bind_reading_clause.cpp +++ b/src/binder/bind/bind_reading_clause.cpp @@ -9,6 +9,7 @@ #include "parser/query/reading_clause/load_from.h" #include "parser/query/reading_clause/unwind_clause.h" #include "processor/operator/persistent/reader/csv/csv_reader.h" +#include "processor/operator/persistent/reader/npy_reader.h" #include "processor/operator/persistent/reader/parquet/parquet_reader.h" using namespace kuzu::common; @@ -45,8 +46,8 @@ std::unique_ptr Binder::bindMatchClause(const ReadingClause& auto boundMatchClause = make_unique( std::move(queryGraphCollection), matchClause.getMatchClauseType()); std::shared_ptr whereExpression; - if (matchClause.hasWhereClause()) { - whereExpression = bindWhereExpression(*matchClause.getWhereClause()); + if (matchClause.hasWherePredicate()) { + whereExpression = bindWhereExpression(*matchClause.getWherePredicate()); } // Rewrite self loop edge // e.g. rewrite (a)-[e]->(a) as [a]-[e]->(b) WHERE id(a) = id(b) @@ -79,7 +80,7 @@ std::unique_ptr Binder::bindMatchClause(const ReadingClause& expressionBinder.combineConjunctiveExpressions(predicate, whereExpression); } - boundMatchClause->setWhereExpression(std::move(whereExpression)); + boundMatchClause->setWherePredicate(std::move(whereExpression)); return boundMatchClause; } @@ -113,6 +114,17 @@ std::unique_ptr Binder::bindInQueryCall(const ReadingClause& tableFunctionDefinition->tableFunc, std::move(bindData), std::move(outputExpressions)); } +static std::unique_ptr bindFixedListType( + const std::vector& shape, LogicalTypeID typeID) { + if (shape.size() == 1) { + return std::make_unique(typeID); + } + auto childShape = std::vector{shape.begin() + 1, shape.end()}; + auto childType = bindFixedListType(childShape, typeID); + auto extraInfo = std::make_unique(std::move(childType), (uint32_t)shape[0]); + return std::make_unique(LogicalTypeID::FIXED_LIST, std::move(extraInfo)); +} + std::unique_ptr Binder::bindLoadFrom( const parser::ReadingClause& readingClause) { auto& loadFrom = reinterpret_cast(readingClause); @@ -151,13 +163,26 @@ std::unique_ptr Binder::bindLoadFrom( columns.push_back(createVariable(columnName, *columnType)); } } break; + case FileType::NPY: { + auto reader = NpyReader(readerConfig->filePaths[0]); + auto columnType = bindFixedListType(reader.getShape(), reader.getType()); + auto columnName = std::string("column0"); + readerConfig->columnNames.push_back(columnName); + readerConfig->columnTypes.push_back(columnType->copy()); + columns.push_back(createVariable(columnName, *columnType)); + } break; default: throw BinderException(StringUtils::string_format( "Load from {} file is not supported.", FileTypeUtils::toString(fileType))); } auto info = std::make_unique( std::move(readerConfig), std::move(columns), nullptr, TableType::UNKNOWN); - return std::make_unique(std::move(info)); + auto boundLoadFrom = std::make_unique(std::move(info)); + if (loadFrom.hasWherePredicate()) { + auto wherePredicate = expressionBinder.bindExpression(*loadFrom.getWherePredicate()); + boundLoadFrom->setWherePredicate(std::move(wherePredicate)); + } + return boundLoadFrom; } } // namespace binder diff --git a/src/binder/visitor/property_collector.cpp b/src/binder/visitor/property_collector.cpp index 7b147a545e..0488f568f0 100644 --- a/src/binder/visitor/property_collector.cpp +++ b/src/binder/visitor/property_collector.cpp @@ -1,6 +1,7 @@ #include "binder/visitor/property_collector.h" #include "binder/expression_visitor.h" +#include "binder/query/reading_clause/bound_load_from.h" #include "binder/query/reading_clause/bound_match_clause.h" #include "binder/query/reading_clause/bound_unwind_clause.h" #include "binder/query/updating_clause/bound_create_clause.h" @@ -28,8 +29,8 @@ void PropertyCollector::visitMatch(const BoundReadingClause& readingClause) { properties.insert(rel->getInternalIDProperty()); } } - if (matchClause.hasWhereExpression()) { - collectPropertyExpressions(matchClause.getWhereExpression()); + if (matchClause.hasWherePredicate()) { + collectPropertyExpressions(matchClause.getWherePredicate()); } } @@ -38,6 +39,13 @@ void PropertyCollector::visitUnwind(const BoundReadingClause& readingClause) { collectPropertyExpressions(unwindClause.getExpression()); } +void PropertyCollector::visitLoadFrom(const BoundReadingClause& readingClause) { + auto& loadFromClause = reinterpret_cast(readingClause); + if (loadFromClause.hasWherePredicate()) { + collectPropertyExpressions(loadFromClause.getWherePredicate()); + } +} + void PropertyCollector::visitSet(const BoundUpdatingClause& updatingClause) { auto& boundSetClause = (BoundSetClause&)updatingClause; for (auto& info : boundSetClause.getInfosRef()) { diff --git a/src/include/binder/query/reading_clause/bound_load_from.h b/src/include/binder/query/reading_clause/bound_load_from.h index b69a29782e..85c3922ddf 100644 --- a/src/include/binder/query/reading_clause/bound_load_from.h +++ b/src/include/binder/query/reading_clause/bound_load_from.h @@ -8,17 +8,30 @@ namespace binder { class BoundLoadFrom : public BoundReadingClause { public: - BoundLoadFrom(std::unique_ptr info) + explicit BoundLoadFrom(std::unique_ptr info) : BoundReadingClause{common::ClauseType::LOAD_FROM}, info{std::move(info)} {} + BoundLoadFrom(const BoundLoadFrom& other) + : BoundReadingClause{common::ClauseType::LOAD_FROM}, info{other.info->copy()}, + wherePredicate{other.wherePredicate} {} inline BoundFileScanInfo* getInfo() const { return info.get(); } + inline void setWherePredicate(std::shared_ptr expression) { + wherePredicate = std::move(expression); + } + inline bool hasWherePredicate() const { return wherePredicate != nullptr; } + inline std::shared_ptr getWherePredicate() const { return wherePredicate; } + inline expression_vector getPredicatesSplitOnAnd() const { + return hasWherePredicate() ? wherePredicate->splitOnAND() : expression_vector{}; + } + inline std::unique_ptr copy() override { - return std::make_unique(info->copy()); + return std::make_unique(*this); } private: std::unique_ptr info; + std::shared_ptr wherePredicate; }; } // namespace binder diff --git a/src/include/binder/query/reading_clause/bound_match_clause.h b/src/include/binder/query/reading_clause/bound_match_clause.h index c41f7be857..d87d3e6785 100644 --- a/src/include/binder/query/reading_clause/bound_match_clause.h +++ b/src/include/binder/query/reading_clause/bound_match_clause.h @@ -16,19 +16,19 @@ class BoundMatchClause : public BoundReadingClause { BoundMatchClause(const BoundMatchClause& other) : BoundReadingClause(common::ClauseType::MATCH), queryGraphCollection{other.queryGraphCollection->copy()}, - whereExpression(other.whereExpression), matchClauseType{other.matchClauseType} {} + wherePredicate(other.wherePredicate), matchClauseType{other.matchClauseType} {} inline QueryGraphCollection* getQueryGraphCollection() const { return queryGraphCollection.get(); } - inline void setWhereExpression(std::shared_ptr expression) { - whereExpression = std::move(expression); + inline void setWherePredicate(std::shared_ptr expression) { + wherePredicate = std::move(expression); } - inline bool hasWhereExpression() const { return whereExpression != nullptr; } - inline std::shared_ptr getWhereExpression() const { return whereExpression; } + inline bool hasWherePredicate() const { return wherePredicate != nullptr; } + inline std::shared_ptr getWherePredicate() const { return wherePredicate; } inline expression_vector getPredicatesSplitOnAnd() const { - return hasWhereExpression() ? whereExpression->splitOnAND() : expression_vector{}; + return hasWherePredicate() ? wherePredicate->splitOnAND() : expression_vector{}; } inline common::MatchClauseType getMatchClauseType() const { return matchClauseType; } @@ -39,7 +39,7 @@ class BoundMatchClause : public BoundReadingClause { private: std::unique_ptr queryGraphCollection; - std::shared_ptr whereExpression; + std::shared_ptr wherePredicate; common::MatchClauseType matchClauseType; }; diff --git a/src/include/binder/visitor/property_collector.h b/src/include/binder/visitor/property_collector.h index 435b5e9241..d75762a449 100644 --- a/src/include/binder/visitor/property_collector.h +++ b/src/include/binder/visitor/property_collector.h @@ -14,6 +14,7 @@ class PropertyCollector : public BoundStatementVisitor { private: void visitMatch(const BoundReadingClause& readingClause) final; void visitUnwind(const BoundReadingClause& readingClause) final; + void visitLoadFrom(const BoundReadingClause& readingClause) final; void visitSet(const BoundUpdatingClause& updatingClause) final; void visitDelete(const BoundUpdatingClause& updatingClause) final; diff --git a/src/include/parser/query/reading_clause/load_from.h b/src/include/parser/query/reading_clause/load_from.h index d8d7df390e..6b8f5e03f7 100644 --- a/src/include/parser/query/reading_clause/load_from.h +++ b/src/include/parser/query/reading_clause/load_from.h @@ -15,9 +15,16 @@ class LoadFrom : public ReadingClause { inline std::vector getFilePaths() const { return filePaths; } inline const parsing_option_t& getParsingOptionsRef() const { return parsingOptions; } + inline void setWherePredicate(std::unique_ptr expression) { + wherePredicate = std::move(expression); + } + inline bool hasWherePredicate() const { return wherePredicate != nullptr; } + inline ParsedExpression* getWherePredicate() const { return wherePredicate.get(); } + private: std::vector filePaths; parsing_option_t parsingOptions; + std::unique_ptr wherePredicate; }; } // namespace parser diff --git a/src/include/parser/query/reading_clause/match_clause.h b/src/include/parser/query/reading_clause/match_clause.h index b5f337ce23..3034c60d39 100644 --- a/src/include/parser/query/reading_clause/match_clause.h +++ b/src/include/parser/query/reading_clause/match_clause.h @@ -19,18 +19,17 @@ class MatchClause : public ReadingClause { return patternElements; } - inline void setWhereClause(std::unique_ptr expression) { - whereClause = std::move(expression); + inline void setWherePredicate(std::unique_ptr expression) { + wherePredicate = std::move(expression); } - - inline bool hasWhereClause() const { return whereClause != nullptr; } - inline ParsedExpression* getWhereClause() const { return whereClause.get(); } + inline bool hasWherePredicate() const { return wherePredicate != nullptr; } + inline ParsedExpression* getWherePredicate() const { return wherePredicate.get(); } inline common::MatchClauseType getMatchClauseType() const { return matchClauseType; } private: std::vector> patternElements; - std::unique_ptr whereClause; + std::unique_ptr wherePredicate; common::MatchClauseType matchClauseType; }; diff --git a/src/include/processor/operator/persistent/reader/npy_reader.h b/src/include/processor/operator/persistent/reader/npy_reader.h index 0426c9c1f7..b49dc87b2d 100644 --- a/src/include/processor/operator/persistent/reader/npy_reader.h +++ b/src/include/processor/operator/persistent/reader/npy_reader.h @@ -27,8 +27,7 @@ class NpyReader { // Used in tests only. inline common::LogicalTypeID getType() const { return type; } - inline std::vector const& getShape() const { return shape; } - inline size_t getNumDimensions() const { return shape.size(); } + inline std::vector getShape() const { return shape; } void validate(const common::LogicalType& type_, common::offset_t numRows); diff --git a/src/parser/transform/transform_reading_clause.cpp b/src/parser/transform/transform_reading_clause.cpp index b7bd8d3f76..e4f2c75b29 100644 --- a/src/parser/transform/transform_reading_clause.cpp +++ b/src/parser/transform/transform_reading_clause.cpp @@ -32,7 +32,7 @@ std::unique_ptr Transformer::transformMatch(CypherParser::OC_Matc auto matchClause = std::make_unique(transformPattern(*ctx.oC_Pattern()), matchClauseType); if (ctx.oC_Where()) { - matchClause->setWhereClause(transformWhere(*ctx.oC_Where())); + matchClause->setWherePredicate(transformWhere(*ctx.oC_Where())); } return matchClause; } @@ -60,7 +60,11 @@ std::unique_ptr Transformer::transformLoadFrom( if (ctx.kU_ParsingOptions()) { parsingOptions = transformParsingOptions(*ctx.kU_ParsingOptions()); } - return std::make_unique(std::move(filePaths), std::move(parsingOptions)); + auto loadFrom = std::make_unique(std::move(filePaths), std::move(parsingOptions)); + if (ctx.oC_Where()) { + loadFrom->setWherePredicate(transformWhere(*ctx.oC_Where())); + } + return loadFrom; } } // namespace parser diff --git a/src/planner/plan/plan_read.cpp b/src/planner/plan/plan_read.cpp index 47cd702ea0..c3f604a965 100644 --- a/src/planner/plan/plan_read.cpp +++ b/src/planner/plan/plan_read.cpp @@ -1,3 +1,4 @@ +#include "binder/expression_visitor.h" #include "binder/query/reading_clause/bound_load_from.h" #include "binder/query/reading_clause/bound_match_clause.h" #include "planner/query_planner.h" @@ -78,16 +79,49 @@ void QueryPlanner::planInQueryCall( } } +static bool hasExternalDependency(const std::shared_ptr& expression, + const std::unordered_set& variableNameSet) { + auto collector = ExpressionCollector(); + for (auto& name : collector.getDependentVariableNames(expression)) { + if (!variableNameSet.contains(name)) { + return true; + } + } + return false; +} + void QueryPlanner::planLoadFrom( binder::BoundReadingClause* readingClause, std::vector>& plans) { auto loadFrom = reinterpret_cast(readingClause); + std::unordered_set columnNameSet; + for (auto& column : loadFrom->getInfo()->columns) { + columnNameSet.insert(column->getUniqueName()); + } + expression_vector predicatesToPushDown; + expression_vector predicatesToPullUp; + for (auto& predicate : loadFrom->getPredicatesSplitOnAnd()) { + if (hasExternalDependency(predicate, columnNameSet)) { + predicatesToPullUp.push_back(predicate); + } else { + predicatesToPushDown.push_back(predicate); + } + } for (auto& plan : plans) { if (!plan->isEmpty()) { auto tmpPlan = std::make_unique(); appendScanFile(loadFrom->getInfo(), *tmpPlan); + if (!predicatesToPushDown.empty()) { + appendFilters(predicatesToPushDown, *tmpPlan); + } appendCrossProduct(AccumulateType::REGULAR, *plan, *tmpPlan); } else { appendScanFile(loadFrom->getInfo(), *plan); + if (!predicatesToPushDown.empty()) { + appendFilters(predicatesToPushDown, *plan); + } + } + if (!predicatesToPullUp.empty()) { + appendFilter(loadFrom->getWherePredicate(), *plan); } } } diff --git a/src/processor/operator/persistent/reader/npy/npy_reader.cpp b/src/processor/operator/persistent/reader/npy/npy_reader.cpp index 6603fd6bb3..030bd9436d 100644 --- a/src/processor/operator/persistent/reader/npy/npy_reader.cpp +++ b/src/processor/operator/persistent/reader/npy/npy_reader.cpp @@ -223,7 +223,6 @@ NpyMultiFileReader::NpyMultiFileReader(const std::vector& filePaths } void NpyMultiFileReader::readBlock(block_idx_t blockIdx, common::DataChunk* dataChunkToRead) const { - assert(fileReaders.size() > 1); for (auto i = 0u; i < fileReaders.size(); i++) { fileReaders[i]->readBlock(blockIdx, dataChunkToRead->getValueVector(i).get()); } diff --git a/test/test_files/copy/copy_to.test b/test/test_files/copy/copy_to.test index 00f76e19cd..395ffed524 100644 --- a/test/test_files/copy/copy_to.test +++ b/test/test_files/copy/copy_to.test @@ -13,7 +13,7 @@ Binder exception: Cannot find property non_prop for a. -LOG Non-Query command -STATEMENT COPY (EXPLAIN MATCH (p:person) RETURN p.ID) TO "test.csv" ---- error -Parser exception: mismatched input 'EXPLAIN' expecting {CALL, LOAD, OPTIONAL, MATCH, UNWIND, CREATE, MERGE, SET, DELETE, WITH, RETURN} (line: 1, offset: 6) +Parser exception: extraneous input 'EXPLAIN' expecting {CALL, LOAD, OPTIONAL, MATCH, UNWIND, CREATE, MERGE, SET, DELETE, WITH, RETURN, SP} (line: 1, offset: 6) "COPY (EXPLAIN MATCH (p:person) RETURN p.ID) TO "test.csv"" ^^^^^^^ diff --git a/test/test_files/tinysnb/load_from/load_from.test b/test/test_files/tinysnb/load_from/load_from.test index 74f210fd21..d2b18356a8 100644 --- a/test/test_files/tinysnb/load_from/load_from.test +++ b/test/test_files/tinysnb/load_from/load_from.test @@ -2,7 +2,24 @@ -DATASET CSV tinysnb -- --CASE LoadFromParquetTest1 + +-CASE LoadFromNpyTest +-STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/npy-1d/one_dim_double.npy" RETURN * ORDER BY column0 LIMIT 5; +---- 3 +1.000000 +2.000000 +3.000000 +-STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/npy-1d/one_dim_int64.npy" WHERE column0 > 1 RETURN * ; +---- 2 +2 +3 +-STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/npy-2d/two_dim_int64.npy" RETURN * ; +---- 3 +[1,2,3] +[4,5,6] +[7,8,9] + +-CASE LoadFromParquetTest -STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/types_50k_0.parquet" RETURN * ORDER BY id LIMIT 5; ---- 5 0|73|3.258507|True|1994-01-12|FrPZkcHFuepVxcAiMwyAsRqDlRtQx|[65,25]|[4deQc5]|[[163,237],[28,60,77,31,137],[286,186,249,206]]|{id: 764, name: CwFRaCoEp} @@ -10,6 +27,10 @@ 2|30|13.397253|True|2015-01-06|uQJCBEePLuGkoAp|[47,27,57,46]|[INx9T8cF,fQds,GVbSmwovuURxXiRQ6vI3]|[[89,232],[186,224],[278,106,154]]|{id: 275, name: LeJHI4vdgjFDl} 3|4|3.174669|True|2104-03-14|fjyKxMjhXXgCkZmwBACpRrjNHlhrDtkQPl|[58,77,66,48]|[SUFT8NmyhMQ,DaTDnzkotQ2pjvdCN]|[[44]]|{id: 545, name: 0jhUkRv7R8} 4|99|17.608944|True|2089-10-27||[78,93,50,3]|[7Jyqki,Y0FQsTGx,7LqWTypucemvMYm,t5spe07tWSCJ]|[[267,172,283],[74,37],[148,62,96,47],[277,95]]|{id: 460, name: 1e6nIx} +-STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/types_50k_0.parquet" + WHERE id = 2 RETURN column1, column2; +---- 1 +30|13.397253 -STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/types_50k_0.parquet" RETURN id, column1, column2 ORDER BY column1, id LIMIT 3; ---- 3 20|0|57.579280 @@ -64,3 +85,17 @@ Binder exception: Load from TURTLE file is not supported. 3|4|Carol 5|6|Dan 7|6|Elizabeth +-STATEMENT MATCH (a:person) WHERE a.ID < 2 + LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/tinysnb/vPerson.csv" (HEADER=True) + WHERE column1 = "Alice" or column1 = "Bob" AND a.fName = column1 + RETURN column0, column1; +---- 1 +0|Alice +-STATEMENT LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/tinysnb/eWorkAt.csv" (HEADER=False) + WHERE column0 = "3" + WITH column0 AS a, column1 AS b + LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/tinysnb/vPerson.csv" (HEADER=True) + WHERE column0 = a + RETURN a, b, column1; +---- 1 +3|4|Carol diff --git a/third_party/antlr4_cypher/cypher_parser.cpp b/third_party/antlr4_cypher/cypher_parser.cpp index fe183130e6..4722f93508 100644 --- a/third_party/antlr4_cypher/cypher_parser.cpp +++ b/third_party/antlr4_cypher/cypher_parser.cpp @@ -124,7 +124,7 @@ void cypherParserInitialize() { } ); static const int32_t serializedATNSegment[] = { - 4,1,142,2058,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6, + 4,1,142,2070,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6, 2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14, 7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21, 7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28, @@ -149,200 +149,201 @@ void cypherParserInitialize() { 3,1,299,8,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,309,8,2,1,2,1,2,3,2,313, 8,2,1,2,1,2,3,2,317,8,2,1,2,1,2,3,2,321,8,2,1,3,1,3,1,3,1,3,1,3,1,3,1, 3,1,3,3,3,331,8,3,1,3,1,3,3,3,335,8,3,1,3,1,3,3,3,339,8,3,1,3,5,3,342, - 8,3,10,3,12,3,345,9,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4, - 1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,3,5,367,8,5,1,5,1,5,3,5,371,8,5,1,5,1, - 5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7, - 1,7,3,7,393,8,7,1,7,1,7,3,7,397,8,7,1,7,3,7,400,8,7,1,7,3,7,403,8,7,1, - 7,3,7,406,8,7,1,7,3,7,409,8,7,1,7,1,7,3,7,413,8,7,1,7,5,7,416,8,7,10, - 7,12,7,419,9,7,1,7,3,7,422,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,3,8,432, - 8,8,1,8,1,8,3,8,436,8,8,1,8,5,8,439,8,8,10,8,12,8,442,9,8,1,9,1,9,3,9, - 446,8,9,1,9,1,9,1,9,3,9,451,8,9,1,9,1,9,1,10,1,10,3,10,457,8,10,1,10, - 1,10,3,10,461,8,10,1,10,1,10,3,10,465,8,10,1,10,5,10,468,8,10,10,10,12, - 10,471,9,10,1,10,1,10,1,10,1,10,3,10,477,8,10,1,10,1,10,3,10,481,8,10, - 1,10,1,10,3,10,485,8,10,1,10,3,10,488,8,10,1,11,1,11,3,11,492,8,11,1, - 11,1,11,3,11,496,8,11,1,11,5,11,499,8,11,10,11,12,11,502,9,11,1,12,1, - 12,3,12,506,8,12,1,12,1,12,3,12,510,8,12,1,12,1,12,1,13,1,13,1,13,1,13, - 1,13,1,13,3,13,520,8,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,3,14, - 530,8,14,1,14,1,14,3,14,534,8,14,1,14,1,14,3,14,538,8,14,1,14,1,14,3, - 14,542,8,14,1,14,1,14,1,14,3,14,547,8,14,1,14,1,14,1,15,1,15,1,15,1,15, - 1,15,1,15,1,15,1,15,3,15,559,8,15,1,15,1,15,3,15,563,8,15,1,15,1,15,3, - 15,567,8,15,1,15,1,15,3,15,571,8,15,1,15,1,15,3,15,575,8,15,3,15,577, - 8,15,1,15,1,15,3,15,581,8,15,1,15,1,15,3,15,585,8,15,3,15,587,8,15,1, - 15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,3,16,601,8, - 16,1,16,1,16,3,16,605,8,16,1,16,1,16,3,16,609,8,16,1,16,1,16,3,16,613, - 8,16,1,16,4,16,616,8,16,11,16,12,16,617,1,16,3,16,621,8,16,1,16,1,16, - 3,16,625,8,16,1,16,1,16,3,16,629,8,16,3,16,631,8,16,1,16,1,16,3,16,635, - 8,16,1,16,1,16,3,16,639,8,16,3,16,641,8,16,1,16,1,16,1,17,1,17,1,17,1, - 17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1, - 19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1, - 21,1,21,1,21,3,21,679,8,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1, - 22,3,22,690,8,22,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1, - 25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,3,26,712,8,26,1,26,1, - 26,3,26,716,8,26,1,26,5,26,719,8,26,10,26,12,26,722,9,26,1,27,1,27,1, - 27,1,27,1,28,1,28,1,28,1,28,3,28,732,8,28,1,28,1,28,3,28,736,8,28,1,28, - 1,28,3,28,740,8,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,3,29,750,8, - 29,1,29,1,29,3,29,754,8,29,1,29,1,29,3,29,758,8,29,1,29,1,29,1,29,1,29, - 3,29,764,8,29,1,29,1,29,3,29,768,8,29,1,29,1,29,3,29,772,8,29,1,29,1, - 29,1,29,1,29,3,29,778,8,29,1,29,1,29,3,29,782,8,29,1,29,1,29,3,29,786, - 8,29,1,29,1,29,3,29,790,8,29,1,29,1,29,3,29,794,8,29,1,29,1,29,3,29,798, - 8,29,1,30,1,30,5,30,802,8,30,10,30,12,30,805,9,30,1,31,1,31,3,31,809, - 8,31,1,31,1,31,1,32,1,32,3,32,815,8,32,1,33,1,33,1,34,1,34,1,35,1,35, - 1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,835, - 8,35,1,36,1,36,1,37,1,37,3,37,841,8,37,1,37,5,37,844,8,37,10,37,12,37, - 847,9,37,1,37,1,37,3,37,851,8,37,4,37,853,8,37,11,37,12,37,854,1,37,1, - 37,1,37,3,37,860,8,37,1,38,1,38,1,38,1,38,3,38,866,8,38,1,38,1,38,1,38, - 3,38,871,8,38,1,38,3,38,874,8,38,1,39,1,39,3,39,878,8,39,1,40,1,40,3, - 40,882,8,40,5,40,884,8,40,10,40,12,40,887,9,40,1,40,1,40,1,40,3,40,892, - 8,40,5,40,894,8,40,10,40,12,40,897,9,40,1,40,1,40,3,40,901,8,40,1,40, - 5,40,904,8,40,10,40,12,40,907,9,40,1,40,3,40,910,8,40,1,40,3,40,913,8, - 40,1,40,1,40,3,40,917,8,40,4,40,919,8,40,11,40,12,40,920,1,40,1,40,3, - 40,925,8,40,1,41,1,41,3,41,929,8,41,4,41,931,8,41,11,41,12,41,932,1,41, - 1,41,1,42,1,42,3,42,939,8,42,5,42,941,8,42,10,42,12,42,944,9,42,1,42, - 1,42,3,42,948,8,42,5,42,950,8,42,10,42,12,42,953,9,42,1,42,1,42,1,43, - 1,43,1,43,1,43,3,43,961,8,43,1,44,1,44,1,44,1,44,3,44,967,8,44,1,45,1, - 45,1,45,1,45,1,45,1,45,3,45,975,8,45,1,45,1,45,3,45,979,8,45,1,45,1,45, - 3,45,983,8,45,1,45,1,45,3,45,987,8,45,1,46,1,46,1,46,1,46,3,46,993,8, - 46,1,46,1,46,5,46,997,8,46,10,46,12,46,1000,9,46,1,46,1,46,1,47,1,47, - 3,47,1006,8,47,1,47,1,47,3,47,1010,8,47,1,47,1,47,3,47,1014,8,47,1,47, - 3,47,1017,8,47,1,48,1,48,3,48,1021,8,48,1,48,1,48,1,48,1,48,1,48,1,48, - 1,49,1,49,3,49,1031,8,49,1,49,1,49,1,50,1,50,3,50,1037,8,50,1,50,1,50, - 1,50,5,50,1042,8,50,10,50,12,50,1045,9,50,1,51,1,51,1,51,1,51,1,51,1, - 51,1,51,1,51,1,51,1,51,3,51,1057,8,51,1,52,1,52,3,52,1061,8,52,1,52,1, - 52,3,52,1065,8,52,1,52,1,52,3,52,1069,8,52,1,52,5,52,1072,8,52,10,52, - 12,52,1075,9,52,1,53,1,53,3,53,1079,8,53,1,53,1,53,3,53,1083,8,53,1,53, - 1,53,1,54,1,54,3,54,1089,8,54,1,54,1,54,3,54,1093,8,54,1,54,1,54,3,54, - 1097,8,54,1,54,5,54,1100,8,54,10,54,12,54,1103,9,54,1,55,1,55,1,55,3, - 55,1108,8,55,1,55,3,55,1111,8,55,1,56,1,56,1,56,1,57,3,57,1117,8,57,1, - 57,3,57,1120,8,57,1,57,1,57,1,57,1,57,3,57,1126,8,57,1,57,1,57,3,57,1130, - 8,57,1,57,1,57,3,57,1134,8,57,1,58,1,58,3,58,1138,8,58,1,58,1,58,3,58, - 1142,8,58,1,58,5,58,1145,8,58,10,58,12,58,1148,9,58,1,58,1,58,3,58,1152, - 8,58,1,58,1,58,3,58,1156,8,58,1,58,5,58,1159,8,58,10,58,12,58,1162,9, - 58,3,58,1164,8,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,3,59,1173,8,59,1, - 60,1,60,1,60,1,60,1,60,1,60,1,60,3,60,1182,8,60,1,60,5,60,1185,8,60,10, - 60,12,60,1188,9,60,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63, - 3,63,1200,8,63,1,63,3,63,1203,8,63,1,64,1,64,1,64,1,64,1,65,1,65,3,65, - 1211,8,65,1,65,1,65,3,65,1215,8,65,1,65,5,65,1218,8,65,10,65,12,65,1221, - 9,65,1,66,1,66,3,66,1225,8,66,1,66,1,66,3,66,1229,8,66,1,66,1,66,1,66, - 3,66,1234,8,66,1,67,1,67,1,68,1,68,3,68,1240,8,68,1,68,5,68,1243,8,68, - 10,68,12,68,1246,9,68,1,68,1,68,1,68,1,68,3,68,1252,8,68,1,69,1,69,3, - 69,1256,8,69,1,69,1,69,3,69,1260,8,69,3,69,1262,8,69,1,69,1,69,3,69,1266, - 8,69,3,69,1268,8,69,1,69,1,69,3,69,1272,8,69,3,69,1274,8,69,1,69,1,69, - 1,70,1,70,3,70,1280,8,70,1,70,1,70,1,71,1,71,3,71,1286,8,71,1,71,1,71, - 3,71,1290,8,71,1,71,3,71,1293,8,71,1,71,3,71,1296,8,71,1,71,1,71,1,71, - 1,71,3,71,1302,8,71,1,71,3,71,1305,8,71,1,71,3,71,1308,8,71,1,71,1,71, - 3,71,1312,8,71,1,71,1,71,1,71,1,71,3,71,1318,8,71,1,71,3,71,1321,8,71, - 1,71,3,71,1324,8,71,1,71,1,71,3,71,1328,8,71,1,72,1,72,3,72,1332,8,72, - 1,72,1,72,3,72,1336,8,72,3,72,1338,8,72,1,72,1,72,3,72,1342,8,72,3,72, - 1344,8,72,1,72,1,72,3,72,1348,8,72,3,72,1350,8,72,1,72,1,72,3,72,1354, - 8,72,3,72,1356,8,72,1,72,1,72,1,73,1,73,3,73,1362,8,73,1,73,1,73,3,73, - 1366,8,73,1,73,1,73,3,73,1370,8,73,1,73,1,73,3,73,1374,8,73,1,73,1,73, - 3,73,1378,8,73,1,73,1,73,3,73,1382,8,73,1,73,1,73,3,73,1386,8,73,1,73, - 1,73,3,73,1390,8,73,5,73,1392,8,73,10,73,12,73,1395,9,73,3,73,1397,8, - 73,1,73,1,73,1,74,1,74,3,74,1403,8,74,1,74,1,74,3,74,1407,8,74,1,74,1, - 74,3,74,1411,8,74,1,74,3,74,1414,8,74,1,74,5,74,1417,8,74,10,74,12,74, - 1420,9,74,1,75,1,75,3,75,1424,8,75,1,75,5,75,1427,8,75,10,75,12,75,1430, - 9,75,1,76,1,76,3,76,1434,8,76,1,76,1,76,1,77,1,77,3,77,1440,8,77,1,77, - 1,77,1,77,1,77,3,77,1446,8,77,1,77,3,77,1449,8,77,1,77,3,77,1452,8,77, - 1,77,3,77,1455,8,77,1,77,1,77,3,77,1459,8,77,1,77,3,77,1462,8,77,1,77, - 3,77,1465,8,77,1,77,3,77,1468,8,77,1,77,1,77,3,77,1472,8,77,1,77,1,77, - 3,77,1476,8,77,1,77,1,77,3,77,1480,8,77,1,77,1,77,3,77,1484,8,77,1,77, - 1,77,3,77,1488,8,77,1,77,1,77,3,77,1492,8,77,1,77,1,77,3,77,1496,8,77, - 1,78,1,78,1,79,1,79,1,80,1,80,1,81,1,81,1,82,1,82,1,83,1,83,1,83,1,83, - 1,83,5,83,1513,8,83,10,83,12,83,1516,9,83,1,84,1,84,1,84,1,84,1,84,5, - 84,1523,8,84,10,84,12,84,1526,9,84,1,85,1,85,1,85,1,85,1,85,5,85,1533, - 8,85,10,85,12,85,1536,9,85,1,86,1,86,3,86,1540,8,86,3,86,1542,8,86,1, - 86,1,86,1,87,1,87,3,87,1548,8,87,1,87,1,87,3,87,1552,8,87,1,87,1,87,3, - 87,1556,8,87,1,87,1,87,3,87,1560,8,87,1,87,1,87,3,87,1564,8,87,1,87,1, - 87,1,87,1,87,1,87,1,87,3,87,1572,8,87,1,87,1,87,3,87,1576,8,87,1,87,1, - 87,3,87,1580,8,87,1,87,1,87,3,87,1584,8,87,1,87,1,87,4,87,1588,8,87,11, - 87,12,87,1589,1,87,1,87,3,87,1594,8,87,1,88,1,88,1,89,1,89,3,89,1600, - 8,89,1,89,1,89,3,89,1604,8,89,1,89,5,89,1607,8,89,10,89,12,89,1610,9, - 89,1,90,1,90,3,90,1614,8,90,1,90,1,90,3,90,1618,8,90,1,90,5,90,1621,8, - 90,10,90,12,90,1624,9,90,1,91,1,91,3,91,1628,8,91,1,91,1,91,3,91,1632, - 8,91,1,91,1,91,5,91,1636,8,91,10,91,12,91,1639,9,91,1,92,1,92,1,93,1, - 93,3,93,1645,8,93,1,93,1,93,3,93,1649,8,93,1,93,1,93,5,93,1653,8,93,10, - 93,12,93,1656,9,93,1,94,1,94,1,95,1,95,3,95,1662,8,95,1,95,1,95,3,95, - 1666,8,95,1,95,1,95,5,95,1670,8,95,10,95,12,95,1673,9,95,1,96,1,96,1, - 97,1,97,3,97,1679,8,97,1,97,1,97,3,97,1683,8,97,1,97,5,97,1686,8,97,10, - 97,12,97,1689,9,97,1,98,1,98,3,98,1693,8,98,3,98,1695,8,98,1,98,1,98, - 3,98,1699,8,98,1,98,3,98,1702,8,98,1,99,1,99,1,99,4,99,1707,8,99,11,99, - 12,99,1708,1,99,3,99,1712,8,99,1,100,1,100,3,100,1716,8,100,1,101,1,101, - 1,101,1,101,1,102,1,102,3,102,1724,8,102,1,102,1,102,3,102,1728,8,102, - 1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103, - 1,103,3,103,1743,8,103,1,103,3,103,1746,8,103,1,103,1,103,1,104,3,104, - 1751,8,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105, - 1,105,1,105,3,105,1765,8,105,1,106,1,106,3,106,1769,8,106,1,106,5,106, - 1772,8,106,10,106,12,106,1775,9,106,1,107,1,107,1,107,1,107,1,107,1,107, - 1,107,3,107,1784,8,107,1,108,1,108,1,108,1,108,1,108,1,108,3,108,1792, - 8,108,1,109,1,109,1,110,1,110,3,110,1798,8,110,1,110,1,110,3,110,1802, - 8,110,1,110,1,110,3,110,1806,8,110,1,110,1,110,3,110,1810,8,110,5,110, - 1812,8,110,10,110,12,110,1815,9,110,3,110,1817,8,110,1,110,1,110,1,111, - 1,111,3,111,1823,8,111,1,111,1,111,3,111,1827,8,111,1,111,1,111,3,111, - 1831,8,111,1,111,1,111,3,111,1835,8,111,5,111,1837,8,111,10,111,12,111, - 1840,9,111,1,111,1,111,1,112,1,112,3,112,1846,8,112,1,112,3,112,1849, - 8,112,1,112,1,112,3,112,1853,8,112,1,112,1,112,1,113,1,113,3,113,1859, - 8,113,1,113,1,113,3,113,1863,8,113,1,113,1,113,1,114,1,114,3,114,1869, - 8,114,1,114,1,114,3,114,1873,8,114,1,114,1,114,3,114,1877,8,114,1,114, - 1,114,1,114,1,114,3,114,1883,8,114,1,114,1,114,3,114,1887,8,114,1,114, - 1,114,3,114,1891,8,114,3,114,1893,8,114,1,114,1,114,3,114,1897,8,114, - 1,114,1,114,3,114,1901,8,114,1,114,1,114,3,114,1905,8,114,5,114,1907, - 8,114,10,114,12,114,1910,9,114,3,114,1912,8,114,1,114,1,114,3,114,1916, - 8,114,1,115,1,115,1,116,1,116,3,116,1922,8,116,1,116,1,116,1,116,3,116, - 1927,8,116,3,116,1929,8,116,1,116,1,116,1,117,1,117,3,117,1935,8,117, - 1,117,1,117,3,117,1939,8,117,1,117,1,117,3,117,1943,8,117,1,117,1,117, - 3,117,1947,8,117,1,117,3,117,1950,8,117,1,117,3,117,1953,8,117,1,117, - 1,117,1,118,1,118,3,118,1959,8,118,1,118,1,118,3,118,1963,8,118,1,119, - 1,119,3,119,1967,8,119,1,119,4,119,1970,8,119,11,119,12,119,1971,1,119, - 1,119,3,119,1976,8,119,1,119,1,119,3,119,1980,8,119,1,119,4,119,1983, - 8,119,11,119,12,119,1984,3,119,1987,8,119,1,119,3,119,1990,8,119,1,119, - 1,119,3,119,1994,8,119,1,119,3,119,1997,8,119,1,119,3,119,2000,8,119, - 1,119,1,119,1,120,1,120,3,120,2006,8,120,1,120,1,120,3,120,2010,8,120, - 1,120,1,120,3,120,2014,8,120,1,120,1,120,1,121,1,121,1,122,1,122,3,122, - 2022,8,122,1,123,1,123,1,123,3,123,2027,8,123,1,124,1,124,3,124,2031, - 8,124,1,124,1,124,1,125,1,125,1,126,1,126,1,127,1,127,1,128,1,128,1,129, - 1,129,1,129,1,129,1,129,3,129,2048,8,129,1,130,1,130,1,131,1,131,1,132, - 1,132,1,133,1,133,1,133,0,0,134,0,2,4,6,8,10,12,14,16,18,20,22,24,26, - 28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72, - 74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114, - 116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150, - 152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186, - 188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222, - 224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258, - 260,262,264,266,0,9,1,0,99,102,2,0,5,5,14,18,1,0,20,21,2,0,22,22,110, - 110,2,0,23,24,93,93,1,0,117,118,2,0,15,15,29,32,2,0,17,17,33,36,2,0,37, - 47,110,110,2315,0,269,1,0,0,0,2,298,1,0,0,0,4,300,1,0,0,0,6,322,1,0,0, - 0,8,352,1,0,0,0,10,362,1,0,0,0,12,374,1,0,0,0,14,386,1,0,0,0,16,429,1, - 0,0,0,18,443,1,0,0,0,20,487,1,0,0,0,22,489,1,0,0,0,24,503,1,0,0,0,26, - 519,1,0,0,0,28,521,1,0,0,0,30,550,1,0,0,0,32,590,1,0,0,0,34,644,1,0,0, - 0,36,652,1,0,0,0,38,660,1,0,0,0,40,666,1,0,0,0,42,678,1,0,0,0,44,680, - 1,0,0,0,46,691,1,0,0,0,48,695,1,0,0,0,50,701,1,0,0,0,52,709,1,0,0,0,54, - 723,1,0,0,0,56,727,1,0,0,0,58,797,1,0,0,0,60,799,1,0,0,0,62,806,1,0,0, - 0,64,814,1,0,0,0,66,816,1,0,0,0,68,818,1,0,0,0,70,834,1,0,0,0,72,836, - 1,0,0,0,74,859,1,0,0,0,76,873,1,0,0,0,78,877,1,0,0,0,80,924,1,0,0,0,82, - 930,1,0,0,0,84,942,1,0,0,0,86,960,1,0,0,0,88,966,1,0,0,0,90,968,1,0,0, - 0,92,988,1,0,0,0,94,1005,1,0,0,0,96,1018,1,0,0,0,98,1028,1,0,0,0,100, - 1034,1,0,0,0,102,1056,1,0,0,0,104,1058,1,0,0,0,106,1076,1,0,0,0,108,1086, - 1,0,0,0,110,1104,1,0,0,0,112,1112,1,0,0,0,114,1119,1,0,0,0,116,1163,1, - 0,0,0,118,1172,1,0,0,0,120,1174,1,0,0,0,122,1189,1,0,0,0,124,1193,1,0, - 0,0,126,1197,1,0,0,0,128,1204,1,0,0,0,130,1208,1,0,0,0,132,1233,1,0,0, - 0,134,1235,1,0,0,0,136,1251,1,0,0,0,138,1253,1,0,0,0,140,1277,1,0,0,0, - 142,1327,1,0,0,0,144,1329,1,0,0,0,146,1359,1,0,0,0,148,1400,1,0,0,0,150, - 1421,1,0,0,0,152,1431,1,0,0,0,154,1437,1,0,0,0,156,1497,1,0,0,0,158,1499, - 1,0,0,0,160,1501,1,0,0,0,162,1503,1,0,0,0,164,1505,1,0,0,0,166,1507,1, - 0,0,0,168,1517,1,0,0,0,170,1527,1,0,0,0,172,1541,1,0,0,0,174,1593,1,0, - 0,0,176,1595,1,0,0,0,178,1597,1,0,0,0,180,1611,1,0,0,0,182,1625,1,0,0, - 0,184,1640,1,0,0,0,186,1642,1,0,0,0,188,1657,1,0,0,0,190,1659,1,0,0,0, - 192,1674,1,0,0,0,194,1676,1,0,0,0,196,1694,1,0,0,0,198,1703,1,0,0,0,200, - 1715,1,0,0,0,202,1717,1,0,0,0,204,1721,1,0,0,0,206,1742,1,0,0,0,208,1750, - 1,0,0,0,210,1764,1,0,0,0,212,1766,1,0,0,0,214,1783,1,0,0,0,216,1791,1, - 0,0,0,218,1793,1,0,0,0,220,1795,1,0,0,0,222,1820,1,0,0,0,224,1845,1,0, - 0,0,226,1856,1,0,0,0,228,1915,1,0,0,0,230,1917,1,0,0,0,232,1928,1,0,0, - 0,234,1932,1,0,0,0,236,1956,1,0,0,0,238,1986,1,0,0,0,240,2003,1,0,0,0, - 242,2017,1,0,0,0,244,2021,1,0,0,0,246,2023,1,0,0,0,248,2028,1,0,0,0,250, - 2034,1,0,0,0,252,2036,1,0,0,0,254,2038,1,0,0,0,256,2040,1,0,0,0,258,2047, - 1,0,0,0,260,2049,1,0,0,0,262,2051,1,0,0,0,264,2053,1,0,0,0,266,2055,1, - 0,0,0,268,270,5,139,0,0,269,268,1,0,0,0,269,270,1,0,0,0,270,272,1,0,0, - 0,271,273,3,64,32,0,272,271,1,0,0,0,272,273,1,0,0,0,273,275,1,0,0,0,274, + 8,3,10,3,12,3,345,9,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,3,4,357, + 8,4,1,4,1,4,3,4,361,8,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,3,5,373, + 8,5,1,5,1,5,3,5,377,8,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1, + 6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,3,7,399,8,7,1,7,1,7,3,7,403,8,7,1,7, + 3,7,406,8,7,1,7,3,7,409,8,7,1,7,3,7,412,8,7,1,7,3,7,415,8,7,1,7,1,7,3, + 7,419,8,7,1,7,5,7,422,8,7,10,7,12,7,425,9,7,1,7,3,7,428,8,7,1,7,1,7,1, + 7,1,7,1,7,1,7,1,8,1,8,3,8,438,8,8,1,8,1,8,3,8,442,8,8,1,8,5,8,445,8,8, + 10,8,12,8,448,9,8,1,9,1,9,3,9,452,8,9,1,9,1,9,1,9,3,9,457,8,9,1,9,1,9, + 1,10,1,10,3,10,463,8,10,1,10,1,10,3,10,467,8,10,1,10,1,10,3,10,471,8, + 10,1,10,5,10,474,8,10,10,10,12,10,477,9,10,1,10,1,10,1,10,1,10,3,10,483, + 8,10,1,10,1,10,3,10,487,8,10,1,10,1,10,3,10,491,8,10,1,10,3,10,494,8, + 10,1,11,1,11,3,11,498,8,11,1,11,1,11,3,11,502,8,11,1,11,5,11,505,8,11, + 10,11,12,11,508,9,11,1,12,1,12,3,12,512,8,12,1,12,1,12,3,12,516,8,12, + 1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,3,13,526,8,13,1,14,1,14,1,14, + 1,14,1,14,1,14,1,14,1,14,3,14,536,8,14,1,14,1,14,3,14,540,8,14,1,14,1, + 14,3,14,544,8,14,1,14,1,14,3,14,548,8,14,1,14,1,14,1,14,3,14,553,8,14, + 1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,3,15,565,8,15,1,15, + 1,15,3,15,569,8,15,1,15,1,15,3,15,573,8,15,1,15,1,15,3,15,577,8,15,1, + 15,1,15,3,15,581,8,15,3,15,583,8,15,1,15,1,15,3,15,587,8,15,1,15,1,15, + 3,15,591,8,15,3,15,593,8,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1, + 16,1,16,1,16,1,16,3,16,607,8,16,1,16,1,16,3,16,611,8,16,1,16,1,16,3,16, + 615,8,16,1,16,1,16,3,16,619,8,16,1,16,4,16,622,8,16,11,16,12,16,623,1, + 16,3,16,627,8,16,1,16,1,16,3,16,631,8,16,1,16,1,16,3,16,635,8,16,3,16, + 637,8,16,1,16,1,16,3,16,641,8,16,1,16,1,16,3,16,645,8,16,3,16,647,8,16, + 1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18, + 1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20, + 1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,3,21,685,8,21,1,22,1,22,1,22, + 1,22,1,22,1,22,1,22,1,22,1,22,3,22,696,8,22,1,23,1,23,1,23,1,23,1,24, + 1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26, + 1,26,3,26,718,8,26,1,26,1,26,3,26,722,8,26,1,26,5,26,725,8,26,10,26,12, + 26,728,9,26,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,3,28,738,8,28,1,28, + 1,28,3,28,742,8,28,1,28,1,28,3,28,746,8,28,1,28,1,28,1,29,1,29,1,29,1, + 29,1,29,1,29,3,29,756,8,29,1,29,1,29,3,29,760,8,29,1,29,1,29,3,29,764, + 8,29,1,29,1,29,1,29,1,29,3,29,770,8,29,1,29,1,29,3,29,774,8,29,1,29,1, + 29,3,29,778,8,29,1,29,1,29,1,29,1,29,3,29,784,8,29,1,29,1,29,3,29,788, + 8,29,1,29,1,29,3,29,792,8,29,1,29,1,29,3,29,796,8,29,1,29,1,29,3,29,800, + 8,29,1,29,1,29,3,29,804,8,29,1,30,1,30,5,30,808,8,30,10,30,12,30,811, + 9,30,1,31,1,31,3,31,815,8,31,1,31,1,31,1,32,1,32,3,32,821,8,32,1,33,1, + 33,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1, + 35,1,35,1,35,3,35,841,8,35,1,36,1,36,1,37,1,37,3,37,847,8,37,1,37,5,37, + 850,8,37,10,37,12,37,853,9,37,1,37,1,37,3,37,857,8,37,4,37,859,8,37,11, + 37,12,37,860,1,37,1,37,1,37,3,37,866,8,37,1,38,1,38,1,38,1,38,3,38,872, + 8,38,1,38,1,38,1,38,3,38,877,8,38,1,38,3,38,880,8,38,1,39,1,39,3,39,884, + 8,39,1,40,1,40,3,40,888,8,40,5,40,890,8,40,10,40,12,40,893,9,40,1,40, + 1,40,1,40,3,40,898,8,40,5,40,900,8,40,10,40,12,40,903,9,40,1,40,1,40, + 3,40,907,8,40,1,40,5,40,910,8,40,10,40,12,40,913,9,40,1,40,3,40,916,8, + 40,1,40,3,40,919,8,40,1,40,1,40,3,40,923,8,40,4,40,925,8,40,11,40,12, + 40,926,1,40,1,40,3,40,931,8,40,1,41,1,41,3,41,935,8,41,4,41,937,8,41, + 11,41,12,41,938,1,41,1,41,1,42,1,42,3,42,945,8,42,5,42,947,8,42,10,42, + 12,42,950,9,42,1,42,1,42,3,42,954,8,42,5,42,956,8,42,10,42,12,42,959, + 9,42,1,42,1,42,1,43,1,43,1,43,1,43,3,43,967,8,43,1,44,1,44,1,44,1,44, + 3,44,973,8,44,1,45,1,45,1,45,1,45,1,45,1,45,3,45,981,8,45,1,45,1,45,3, + 45,985,8,45,1,45,1,45,3,45,989,8,45,1,45,1,45,3,45,993,8,45,1,45,3,45, + 996,8,45,1,45,3,45,999,8,45,1,46,1,46,1,46,1,46,3,46,1005,8,46,1,46,1, + 46,5,46,1009,8,46,10,46,12,46,1012,9,46,1,46,1,46,1,47,1,47,3,47,1018, + 8,47,1,47,1,47,3,47,1022,8,47,1,47,1,47,3,47,1026,8,47,1,47,3,47,1029, + 8,47,1,48,1,48,3,48,1033,8,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49, + 3,49,1043,8,49,1,49,1,49,1,50,1,50,3,50,1049,8,50,1,50,1,50,1,50,5,50, + 1054,8,50,10,50,12,50,1057,9,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1, + 51,1,51,1,51,3,51,1069,8,51,1,52,1,52,3,52,1073,8,52,1,52,1,52,3,52,1077, + 8,52,1,52,1,52,3,52,1081,8,52,1,52,5,52,1084,8,52,10,52,12,52,1087,9, + 52,1,53,1,53,3,53,1091,8,53,1,53,1,53,3,53,1095,8,53,1,53,1,53,1,54,1, + 54,3,54,1101,8,54,1,54,1,54,3,54,1105,8,54,1,54,1,54,3,54,1109,8,54,1, + 54,5,54,1112,8,54,10,54,12,54,1115,9,54,1,55,1,55,1,55,3,55,1120,8,55, + 1,55,3,55,1123,8,55,1,56,1,56,1,56,1,57,3,57,1129,8,57,1,57,3,57,1132, + 8,57,1,57,1,57,1,57,1,57,3,57,1138,8,57,1,57,1,57,3,57,1142,8,57,1,57, + 1,57,3,57,1146,8,57,1,58,1,58,3,58,1150,8,58,1,58,1,58,3,58,1154,8,58, + 1,58,5,58,1157,8,58,10,58,12,58,1160,9,58,1,58,1,58,3,58,1164,8,58,1, + 58,1,58,3,58,1168,8,58,1,58,5,58,1171,8,58,10,58,12,58,1174,9,58,3,58, + 1176,8,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,3,59,1185,8,59,1,60,1,60, + 1,60,1,60,1,60,1,60,1,60,3,60,1194,8,60,1,60,5,60,1197,8,60,10,60,12, + 60,1200,9,60,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63,3,63,1212, + 8,63,1,63,3,63,1215,8,63,1,64,1,64,1,64,1,64,1,65,1,65,3,65,1223,8,65, + 1,65,1,65,3,65,1227,8,65,1,65,5,65,1230,8,65,10,65,12,65,1233,9,65,1, + 66,1,66,3,66,1237,8,66,1,66,1,66,3,66,1241,8,66,1,66,1,66,1,66,3,66,1246, + 8,66,1,67,1,67,1,68,1,68,3,68,1252,8,68,1,68,5,68,1255,8,68,10,68,12, + 68,1258,9,68,1,68,1,68,1,68,1,68,3,68,1264,8,68,1,69,1,69,3,69,1268,8, + 69,1,69,1,69,3,69,1272,8,69,3,69,1274,8,69,1,69,1,69,3,69,1278,8,69,3, + 69,1280,8,69,1,69,1,69,3,69,1284,8,69,3,69,1286,8,69,1,69,1,69,1,70,1, + 70,3,70,1292,8,70,1,70,1,70,1,71,1,71,3,71,1298,8,71,1,71,1,71,3,71,1302, + 8,71,1,71,3,71,1305,8,71,1,71,3,71,1308,8,71,1,71,1,71,1,71,1,71,3,71, + 1314,8,71,1,71,3,71,1317,8,71,1,71,3,71,1320,8,71,1,71,1,71,3,71,1324, + 8,71,1,71,1,71,1,71,1,71,3,71,1330,8,71,1,71,3,71,1333,8,71,1,71,3,71, + 1336,8,71,1,71,1,71,3,71,1340,8,71,1,72,1,72,3,72,1344,8,72,1,72,1,72, + 3,72,1348,8,72,3,72,1350,8,72,1,72,1,72,3,72,1354,8,72,3,72,1356,8,72, + 1,72,1,72,3,72,1360,8,72,3,72,1362,8,72,1,72,1,72,3,72,1366,8,72,3,72, + 1368,8,72,1,72,1,72,1,73,1,73,3,73,1374,8,73,1,73,1,73,3,73,1378,8,73, + 1,73,1,73,3,73,1382,8,73,1,73,1,73,3,73,1386,8,73,1,73,1,73,3,73,1390, + 8,73,1,73,1,73,3,73,1394,8,73,1,73,1,73,3,73,1398,8,73,1,73,1,73,3,73, + 1402,8,73,5,73,1404,8,73,10,73,12,73,1407,9,73,3,73,1409,8,73,1,73,1, + 73,1,74,1,74,3,74,1415,8,74,1,74,1,74,3,74,1419,8,74,1,74,1,74,3,74,1423, + 8,74,1,74,3,74,1426,8,74,1,74,5,74,1429,8,74,10,74,12,74,1432,9,74,1, + 75,1,75,3,75,1436,8,75,1,75,5,75,1439,8,75,10,75,12,75,1442,9,75,1,76, + 1,76,3,76,1446,8,76,1,76,1,76,1,77,1,77,3,77,1452,8,77,1,77,1,77,1,77, + 1,77,3,77,1458,8,77,1,77,3,77,1461,8,77,1,77,3,77,1464,8,77,1,77,3,77, + 1467,8,77,1,77,1,77,3,77,1471,8,77,1,77,3,77,1474,8,77,1,77,3,77,1477, + 8,77,1,77,3,77,1480,8,77,1,77,1,77,3,77,1484,8,77,1,77,1,77,3,77,1488, + 8,77,1,77,1,77,3,77,1492,8,77,1,77,1,77,3,77,1496,8,77,1,77,1,77,3,77, + 1500,8,77,1,77,1,77,3,77,1504,8,77,1,77,1,77,3,77,1508,8,77,1,78,1,78, + 1,79,1,79,1,80,1,80,1,81,1,81,1,82,1,82,1,83,1,83,1,83,1,83,1,83,5,83, + 1525,8,83,10,83,12,83,1528,9,83,1,84,1,84,1,84,1,84,1,84,5,84,1535,8, + 84,10,84,12,84,1538,9,84,1,85,1,85,1,85,1,85,1,85,5,85,1545,8,85,10,85, + 12,85,1548,9,85,1,86,1,86,3,86,1552,8,86,3,86,1554,8,86,1,86,1,86,1,87, + 1,87,3,87,1560,8,87,1,87,1,87,3,87,1564,8,87,1,87,1,87,3,87,1568,8,87, + 1,87,1,87,3,87,1572,8,87,1,87,1,87,3,87,1576,8,87,1,87,1,87,1,87,1,87, + 1,87,1,87,3,87,1584,8,87,1,87,1,87,3,87,1588,8,87,1,87,1,87,3,87,1592, + 8,87,1,87,1,87,3,87,1596,8,87,1,87,1,87,4,87,1600,8,87,11,87,12,87,1601, + 1,87,1,87,3,87,1606,8,87,1,88,1,88,1,89,1,89,3,89,1612,8,89,1,89,1,89, + 3,89,1616,8,89,1,89,5,89,1619,8,89,10,89,12,89,1622,9,89,1,90,1,90,3, + 90,1626,8,90,1,90,1,90,3,90,1630,8,90,1,90,5,90,1633,8,90,10,90,12,90, + 1636,9,90,1,91,1,91,3,91,1640,8,91,1,91,1,91,3,91,1644,8,91,1,91,1,91, + 5,91,1648,8,91,10,91,12,91,1651,9,91,1,92,1,92,1,93,1,93,3,93,1657,8, + 93,1,93,1,93,3,93,1661,8,93,1,93,1,93,5,93,1665,8,93,10,93,12,93,1668, + 9,93,1,94,1,94,1,95,1,95,3,95,1674,8,95,1,95,1,95,3,95,1678,8,95,1,95, + 1,95,5,95,1682,8,95,10,95,12,95,1685,9,95,1,96,1,96,1,97,1,97,3,97,1691, + 8,97,1,97,1,97,3,97,1695,8,97,1,97,5,97,1698,8,97,10,97,12,97,1701,9, + 97,1,98,1,98,3,98,1705,8,98,3,98,1707,8,98,1,98,1,98,3,98,1711,8,98,1, + 98,3,98,1714,8,98,1,99,1,99,1,99,4,99,1719,8,99,11,99,12,99,1720,1,99, + 3,99,1724,8,99,1,100,1,100,3,100,1728,8,100,1,101,1,101,1,101,1,101,1, + 102,1,102,3,102,1736,8,102,1,102,1,102,3,102,1740,8,102,1,102,1,102,1, + 103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,3,103, + 1755,8,103,1,103,3,103,1758,8,103,1,103,1,103,1,104,3,104,1763,8,104, + 1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105, + 3,105,1777,8,105,1,106,1,106,3,106,1781,8,106,1,106,5,106,1784,8,106, + 10,106,12,106,1787,9,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3, + 107,1796,8,107,1,108,1,108,1,108,1,108,1,108,1,108,3,108,1804,8,108,1, + 109,1,109,1,110,1,110,3,110,1810,8,110,1,110,1,110,3,110,1814,8,110,1, + 110,1,110,3,110,1818,8,110,1,110,1,110,3,110,1822,8,110,5,110,1824,8, + 110,10,110,12,110,1827,9,110,3,110,1829,8,110,1,110,1,110,1,111,1,111, + 3,111,1835,8,111,1,111,1,111,3,111,1839,8,111,1,111,1,111,3,111,1843, + 8,111,1,111,1,111,3,111,1847,8,111,5,111,1849,8,111,10,111,12,111,1852, + 9,111,1,111,1,111,1,112,1,112,3,112,1858,8,112,1,112,3,112,1861,8,112, + 1,112,1,112,3,112,1865,8,112,1,112,1,112,1,113,1,113,3,113,1871,8,113, + 1,113,1,113,3,113,1875,8,113,1,113,1,113,1,114,1,114,3,114,1881,8,114, + 1,114,1,114,3,114,1885,8,114,1,114,1,114,3,114,1889,8,114,1,114,1,114, + 1,114,1,114,3,114,1895,8,114,1,114,1,114,3,114,1899,8,114,1,114,1,114, + 3,114,1903,8,114,3,114,1905,8,114,1,114,1,114,3,114,1909,8,114,1,114, + 1,114,3,114,1913,8,114,1,114,1,114,3,114,1917,8,114,5,114,1919,8,114, + 10,114,12,114,1922,9,114,3,114,1924,8,114,1,114,1,114,3,114,1928,8,114, + 1,115,1,115,1,116,1,116,3,116,1934,8,116,1,116,1,116,1,116,3,116,1939, + 8,116,3,116,1941,8,116,1,116,1,116,1,117,1,117,3,117,1947,8,117,1,117, + 1,117,3,117,1951,8,117,1,117,1,117,3,117,1955,8,117,1,117,1,117,3,117, + 1959,8,117,1,117,3,117,1962,8,117,1,117,3,117,1965,8,117,1,117,1,117, + 1,118,1,118,3,118,1971,8,118,1,118,1,118,3,118,1975,8,118,1,119,1,119, + 3,119,1979,8,119,1,119,4,119,1982,8,119,11,119,12,119,1983,1,119,1,119, + 3,119,1988,8,119,1,119,1,119,3,119,1992,8,119,1,119,4,119,1995,8,119, + 11,119,12,119,1996,3,119,1999,8,119,1,119,3,119,2002,8,119,1,119,1,119, + 3,119,2006,8,119,1,119,3,119,2009,8,119,1,119,3,119,2012,8,119,1,119, + 1,119,1,120,1,120,3,120,2018,8,120,1,120,1,120,3,120,2022,8,120,1,120, + 1,120,3,120,2026,8,120,1,120,1,120,1,121,1,121,1,122,1,122,3,122,2034, + 8,122,1,123,1,123,1,123,3,123,2039,8,123,1,124,1,124,3,124,2043,8,124, + 1,124,1,124,1,125,1,125,1,126,1,126,1,127,1,127,1,128,1,128,1,129,1,129, + 1,129,1,129,1,129,3,129,2060,8,129,1,130,1,130,1,131,1,131,1,132,1,132, + 1,133,1,133,1,133,0,0,134,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30, + 32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76, + 78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116, + 118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152, + 154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188, + 190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224, + 226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260, + 262,264,266,0,9,1,0,99,102,2,0,5,5,14,18,1,0,20,21,2,0,22,22,110,110, + 2,0,23,24,93,93,1,0,117,118,2,0,15,15,29,32,2,0,17,17,33,36,2,0,37,47, + 110,110,2331,0,269,1,0,0,0,2,298,1,0,0,0,4,300,1,0,0,0,6,322,1,0,0,0, + 8,352,1,0,0,0,10,368,1,0,0,0,12,380,1,0,0,0,14,392,1,0,0,0,16,435,1,0, + 0,0,18,449,1,0,0,0,20,493,1,0,0,0,22,495,1,0,0,0,24,509,1,0,0,0,26,525, + 1,0,0,0,28,527,1,0,0,0,30,556,1,0,0,0,32,596,1,0,0,0,34,650,1,0,0,0,36, + 658,1,0,0,0,38,666,1,0,0,0,40,672,1,0,0,0,42,684,1,0,0,0,44,686,1,0,0, + 0,46,697,1,0,0,0,48,701,1,0,0,0,50,707,1,0,0,0,52,715,1,0,0,0,54,729, + 1,0,0,0,56,733,1,0,0,0,58,803,1,0,0,0,60,805,1,0,0,0,62,812,1,0,0,0,64, + 820,1,0,0,0,66,822,1,0,0,0,68,824,1,0,0,0,70,840,1,0,0,0,72,842,1,0,0, + 0,74,865,1,0,0,0,76,879,1,0,0,0,78,883,1,0,0,0,80,930,1,0,0,0,82,936, + 1,0,0,0,84,948,1,0,0,0,86,966,1,0,0,0,88,972,1,0,0,0,90,974,1,0,0,0,92, + 1000,1,0,0,0,94,1017,1,0,0,0,96,1030,1,0,0,0,98,1040,1,0,0,0,100,1046, + 1,0,0,0,102,1068,1,0,0,0,104,1070,1,0,0,0,106,1088,1,0,0,0,108,1098,1, + 0,0,0,110,1116,1,0,0,0,112,1124,1,0,0,0,114,1131,1,0,0,0,116,1175,1,0, + 0,0,118,1184,1,0,0,0,120,1186,1,0,0,0,122,1201,1,0,0,0,124,1205,1,0,0, + 0,126,1209,1,0,0,0,128,1216,1,0,0,0,130,1220,1,0,0,0,132,1245,1,0,0,0, + 134,1247,1,0,0,0,136,1263,1,0,0,0,138,1265,1,0,0,0,140,1289,1,0,0,0,142, + 1339,1,0,0,0,144,1341,1,0,0,0,146,1371,1,0,0,0,148,1412,1,0,0,0,150,1433, + 1,0,0,0,152,1443,1,0,0,0,154,1449,1,0,0,0,156,1509,1,0,0,0,158,1511,1, + 0,0,0,160,1513,1,0,0,0,162,1515,1,0,0,0,164,1517,1,0,0,0,166,1519,1,0, + 0,0,168,1529,1,0,0,0,170,1539,1,0,0,0,172,1553,1,0,0,0,174,1605,1,0,0, + 0,176,1607,1,0,0,0,178,1609,1,0,0,0,180,1623,1,0,0,0,182,1637,1,0,0,0, + 184,1652,1,0,0,0,186,1654,1,0,0,0,188,1669,1,0,0,0,190,1671,1,0,0,0,192, + 1686,1,0,0,0,194,1688,1,0,0,0,196,1706,1,0,0,0,198,1715,1,0,0,0,200,1727, + 1,0,0,0,202,1729,1,0,0,0,204,1733,1,0,0,0,206,1754,1,0,0,0,208,1762,1, + 0,0,0,210,1776,1,0,0,0,212,1778,1,0,0,0,214,1795,1,0,0,0,216,1803,1,0, + 0,0,218,1805,1,0,0,0,220,1807,1,0,0,0,222,1832,1,0,0,0,224,1857,1,0,0, + 0,226,1868,1,0,0,0,228,1927,1,0,0,0,230,1929,1,0,0,0,232,1940,1,0,0,0, + 234,1944,1,0,0,0,236,1968,1,0,0,0,238,1998,1,0,0,0,240,2015,1,0,0,0,242, + 2029,1,0,0,0,244,2033,1,0,0,0,246,2035,1,0,0,0,248,2040,1,0,0,0,250,2046, + 1,0,0,0,252,2048,1,0,0,0,254,2050,1,0,0,0,256,2052,1,0,0,0,258,2059,1, + 0,0,0,260,2061,1,0,0,0,262,2063,1,0,0,0,264,2065,1,0,0,0,266,2067,1,0, + 0,0,268,270,5,139,0,0,269,268,1,0,0,0,269,270,1,0,0,0,270,272,1,0,0,0, + 271,273,3,64,32,0,272,271,1,0,0,0,272,273,1,0,0,0,273,275,1,0,0,0,274, 276,5,139,0,0,275,274,1,0,0,0,275,276,1,0,0,0,276,277,1,0,0,0,277,282, 3,2,1,0,278,280,5,139,0,0,279,278,1,0,0,0,279,280,1,0,0,0,280,281,1,0, 0,0,281,283,5,1,0,0,282,279,1,0,0,0,282,283,1,0,0,0,283,285,1,0,0,0,284, @@ -366,560 +367,564 @@ void cypherParserInitialize() { 1,0,0,0,340,342,5,125,0,0,341,334,1,0,0,0,342,345,1,0,0,0,343,341,1,0, 0,0,343,344,1,0,0,0,344,346,1,0,0,0,345,343,1,0,0,0,346,347,5,3,0,0,347, 348,5,139,0,0,348,349,5,96,0,0,349,350,5,139,0,0,350,351,5,54,0,0,351, - 7,1,0,0,0,352,353,5,52,0,0,353,354,5,139,0,0,354,355,5,2,0,0,355,356, - 3,72,36,0,356,357,5,3,0,0,357,358,5,139,0,0,358,359,5,68,0,0,359,360, - 5,139,0,0,360,361,5,125,0,0,361,9,1,0,0,0,362,363,5,48,0,0,363,364,5, - 139,0,0,364,366,3,258,129,0,365,367,5,139,0,0,366,365,1,0,0,0,366,367, - 1,0,0,0,367,368,1,0,0,0,368,370,5,5,0,0,369,371,5,139,0,0,370,369,1,0, - 0,0,370,371,1,0,0,0,371,372,1,0,0,0,372,373,3,216,108,0,373,11,1,0,0, - 0,374,375,5,49,0,0,375,376,5,139,0,0,376,377,5,87,0,0,377,378,5,139,0, - 0,378,379,5,56,0,0,379,380,5,139,0,0,380,381,3,256,128,0,381,382,5,139, - 0,0,382,383,5,115,0,0,383,384,5,139,0,0,384,385,5,125,0,0,385,13,1,0, - 0,0,386,387,5,85,0,0,387,388,5,139,0,0,388,389,5,50,0,0,389,390,5,139, - 0,0,390,392,3,230,115,0,391,393,5,139,0,0,392,391,1,0,0,0,392,393,1,0, - 0,0,393,394,1,0,0,0,394,396,5,2,0,0,395,397,5,139,0,0,396,395,1,0,0,0, - 396,397,1,0,0,0,397,399,1,0,0,0,398,400,3,16,8,0,399,398,1,0,0,0,399, - 400,1,0,0,0,400,402,1,0,0,0,401,403,5,139,0,0,402,401,1,0,0,0,402,403, - 1,0,0,0,403,405,1,0,0,0,404,406,3,18,9,0,405,404,1,0,0,0,405,406,1,0, - 0,0,406,417,1,0,0,0,407,409,5,139,0,0,408,407,1,0,0,0,408,409,1,0,0,0, - 409,410,1,0,0,0,410,412,5,4,0,0,411,413,5,139,0,0,412,411,1,0,0,0,412, - 413,1,0,0,0,413,414,1,0,0,0,414,416,3,18,9,0,415,408,1,0,0,0,416,419, - 1,0,0,0,417,415,1,0,0,0,417,418,1,0,0,0,418,421,1,0,0,0,419,417,1,0,0, - 0,420,422,5,139,0,0,421,420,1,0,0,0,421,422,1,0,0,0,422,423,1,0,0,0,423, - 424,5,3,0,0,424,425,5,139,0,0,425,426,5,94,0,0,426,427,5,139,0,0,427, - 428,3,164,82,0,428,15,1,0,0,0,429,440,3,258,129,0,430,432,5,139,0,0,431, - 430,1,0,0,0,431,432,1,0,0,0,432,433,1,0,0,0,433,435,5,4,0,0,434,436,5, - 139,0,0,435,434,1,0,0,0,435,436,1,0,0,0,436,437,1,0,0,0,437,439,3,258, - 129,0,438,431,1,0,0,0,439,442,1,0,0,0,440,438,1,0,0,0,440,441,1,0,0,0, - 441,17,1,0,0,0,442,440,1,0,0,0,443,445,3,258,129,0,444,446,5,139,0,0, - 445,444,1,0,0,0,445,446,1,0,0,0,446,447,1,0,0,0,447,448,5,6,0,0,448,450, - 5,5,0,0,449,451,5,139,0,0,450,449,1,0,0,0,450,451,1,0,0,0,451,452,1,0, - 0,0,452,453,3,216,108,0,453,19,1,0,0,0,454,456,5,7,0,0,455,457,5,139, - 0,0,456,455,1,0,0,0,456,457,1,0,0,0,457,458,1,0,0,0,458,469,5,125,0,0, - 459,461,5,139,0,0,460,459,1,0,0,0,460,461,1,0,0,0,461,462,1,0,0,0,462, - 464,5,4,0,0,463,465,5,139,0,0,464,463,1,0,0,0,464,465,1,0,0,0,465,466, - 1,0,0,0,466,468,5,125,0,0,467,460,1,0,0,0,468,471,1,0,0,0,469,467,1,0, - 0,0,469,470,1,0,0,0,470,472,1,0,0,0,471,469,1,0,0,0,472,488,5,8,0,0,473, - 488,5,125,0,0,474,476,5,51,0,0,475,477,5,139,0,0,476,475,1,0,0,0,476, - 477,1,0,0,0,477,478,1,0,0,0,478,480,5,2,0,0,479,481,5,139,0,0,480,479, - 1,0,0,0,480,481,1,0,0,0,481,482,1,0,0,0,482,484,5,125,0,0,483,485,5,139, - 0,0,484,483,1,0,0,0,484,485,1,0,0,0,485,486,1,0,0,0,486,488,5,3,0,0,487, - 454,1,0,0,0,487,473,1,0,0,0,487,474,1,0,0,0,488,21,1,0,0,0,489,500,3, - 24,12,0,490,492,5,139,0,0,491,490,1,0,0,0,491,492,1,0,0,0,492,493,1,0, - 0,0,493,495,5,4,0,0,494,496,5,139,0,0,495,494,1,0,0,0,495,496,1,0,0,0, - 496,497,1,0,0,0,497,499,3,24,12,0,498,491,1,0,0,0,499,502,1,0,0,0,500, - 498,1,0,0,0,500,501,1,0,0,0,501,23,1,0,0,0,502,500,1,0,0,0,503,505,3, - 258,129,0,504,506,5,139,0,0,505,504,1,0,0,0,505,506,1,0,0,0,506,507,1, - 0,0,0,507,509,5,5,0,0,508,510,5,139,0,0,509,508,1,0,0,0,509,510,1,0,0, - 0,510,511,1,0,0,0,511,512,3,216,108,0,512,25,1,0,0,0,513,520,3,28,14, - 0,514,520,3,30,15,0,515,520,3,32,16,0,516,520,3,36,18,0,517,520,3,38, - 19,0,518,520,3,40,20,0,519,513,1,0,0,0,519,514,1,0,0,0,519,515,1,0,0, - 0,519,516,1,0,0,0,519,517,1,0,0,0,519,518,1,0,0,0,520,27,1,0,0,0,521, - 522,5,85,0,0,522,523,5,139,0,0,523,524,5,55,0,0,524,525,5,139,0,0,525, - 526,5,56,0,0,526,527,5,139,0,0,527,529,3,256,128,0,528,530,5,139,0,0, - 529,528,1,0,0,0,529,530,1,0,0,0,530,531,1,0,0,0,531,533,5,2,0,0,532,534, - 5,139,0,0,533,532,1,0,0,0,533,534,1,0,0,0,534,535,1,0,0,0,535,537,3,52, - 26,0,536,538,5,139,0,0,537,536,1,0,0,0,537,538,1,0,0,0,538,539,1,0,0, - 0,539,541,5,4,0,0,540,542,5,139,0,0,541,540,1,0,0,0,541,542,1,0,0,0,542, - 543,1,0,0,0,543,544,3,56,28,0,544,546,1,0,0,0,545,547,5,139,0,0,546,545, - 1,0,0,0,546,547,1,0,0,0,547,548,1,0,0,0,548,549,5,3,0,0,549,29,1,0,0, - 0,550,551,5,85,0,0,551,552,5,139,0,0,552,553,5,67,0,0,553,554,5,139,0, - 0,554,555,5,56,0,0,555,556,5,139,0,0,556,558,3,256,128,0,557,559,5,139, - 0,0,558,557,1,0,0,0,558,559,1,0,0,0,559,560,1,0,0,0,560,562,5,2,0,0,561, - 563,5,139,0,0,562,561,1,0,0,0,562,563,1,0,0,0,563,564,1,0,0,0,564,566, - 3,34,17,0,565,567,5,139,0,0,566,565,1,0,0,0,566,567,1,0,0,0,567,576,1, - 0,0,0,568,570,5,4,0,0,569,571,5,139,0,0,570,569,1,0,0,0,570,571,1,0,0, - 0,571,572,1,0,0,0,572,574,3,52,26,0,573,575,5,139,0,0,574,573,1,0,0,0, - 574,575,1,0,0,0,575,577,1,0,0,0,576,568,1,0,0,0,576,577,1,0,0,0,577,586, - 1,0,0,0,578,580,5,4,0,0,579,581,5,139,0,0,580,579,1,0,0,0,580,581,1,0, - 0,0,581,582,1,0,0,0,582,584,3,258,129,0,583,585,5,139,0,0,584,583,1,0, - 0,0,584,585,1,0,0,0,585,587,1,0,0,0,586,578,1,0,0,0,586,587,1,0,0,0,587, - 588,1,0,0,0,588,589,5,3,0,0,589,31,1,0,0,0,590,591,5,85,0,0,591,592,5, - 139,0,0,592,593,5,67,0,0,593,594,5,139,0,0,594,595,5,56,0,0,595,596,5, - 139,0,0,596,597,5,57,0,0,597,598,5,139,0,0,598,600,3,256,128,0,599,601, - 5,139,0,0,600,599,1,0,0,0,600,601,1,0,0,0,601,602,1,0,0,0,602,604,5,2, - 0,0,603,605,5,139,0,0,604,603,1,0,0,0,604,605,1,0,0,0,605,606,1,0,0,0, - 606,608,3,34,17,0,607,609,5,139,0,0,608,607,1,0,0,0,608,609,1,0,0,0,609, - 615,1,0,0,0,610,612,5,4,0,0,611,613,5,139,0,0,612,611,1,0,0,0,612,613, - 1,0,0,0,613,614,1,0,0,0,614,616,3,34,17,0,615,610,1,0,0,0,616,617,1,0, - 0,0,617,615,1,0,0,0,617,618,1,0,0,0,618,620,1,0,0,0,619,621,5,139,0,0, - 620,619,1,0,0,0,620,621,1,0,0,0,621,630,1,0,0,0,622,624,5,4,0,0,623,625, - 5,139,0,0,624,623,1,0,0,0,624,625,1,0,0,0,625,626,1,0,0,0,626,628,3,52, - 26,0,627,629,5,139,0,0,628,627,1,0,0,0,628,629,1,0,0,0,629,631,1,0,0, - 0,630,622,1,0,0,0,630,631,1,0,0,0,631,640,1,0,0,0,632,634,5,4,0,0,633, - 635,5,139,0,0,634,633,1,0,0,0,634,635,1,0,0,0,635,636,1,0,0,0,636,638, - 3,258,129,0,637,639,5,139,0,0,638,637,1,0,0,0,638,639,1,0,0,0,639,641, - 1,0,0,0,640,632,1,0,0,0,640,641,1,0,0,0,641,642,1,0,0,0,642,643,5,3,0, - 0,643,33,1,0,0,0,644,645,5,53,0,0,645,646,5,139,0,0,646,647,3,256,128, - 0,647,648,5,139,0,0,648,649,5,68,0,0,649,650,5,139,0,0,650,651,3,256, - 128,0,651,35,1,0,0,0,652,653,5,85,0,0,653,654,5,139,0,0,654,655,5,58, - 0,0,655,656,5,139,0,0,656,657,5,59,0,0,657,658,5,139,0,0,658,659,3,256, - 128,0,659,37,1,0,0,0,660,661,5,60,0,0,661,662,5,139,0,0,662,663,5,56, - 0,0,663,664,5,139,0,0,664,665,3,256,128,0,665,39,1,0,0,0,666,667,5,61, - 0,0,667,668,5,139,0,0,668,669,5,56,0,0,669,670,5,139,0,0,670,671,3,256, - 128,0,671,672,5,139,0,0,672,673,3,42,21,0,673,41,1,0,0,0,674,679,3,44, - 22,0,675,679,3,46,23,0,676,679,3,48,24,0,677,679,3,50,25,0,678,674,1, - 0,0,0,678,675,1,0,0,0,678,676,1,0,0,0,678,677,1,0,0,0,679,43,1,0,0,0, - 680,681,5,64,0,0,681,682,5,139,0,0,682,683,3,250,125,0,683,684,5,139, - 0,0,684,689,3,58,29,0,685,686,5,139,0,0,686,687,5,62,0,0,687,688,5,139, - 0,0,688,690,3,164,82,0,689,685,1,0,0,0,689,690,1,0,0,0,690,45,1,0,0,0, - 691,692,5,60,0,0,692,693,5,139,0,0,693,694,3,250,125,0,694,47,1,0,0,0, - 695,696,5,63,0,0,696,697,5,139,0,0,697,698,5,68,0,0,698,699,5,139,0,0, - 699,700,3,256,128,0,700,49,1,0,0,0,701,702,5,63,0,0,702,703,5,139,0,0, - 703,704,3,250,125,0,704,705,5,139,0,0,705,706,5,68,0,0,706,707,5,139, - 0,0,707,708,3,250,125,0,708,51,1,0,0,0,709,720,3,54,27,0,710,712,5,139, - 0,0,711,710,1,0,0,0,711,712,1,0,0,0,712,713,1,0,0,0,713,715,5,4,0,0,714, - 716,5,139,0,0,715,714,1,0,0,0,715,716,1,0,0,0,716,717,1,0,0,0,717,719, - 3,54,27,0,718,711,1,0,0,0,719,722,1,0,0,0,720,718,1,0,0,0,720,721,1,0, - 0,0,721,53,1,0,0,0,722,720,1,0,0,0,723,724,3,250,125,0,724,725,5,139, - 0,0,725,726,3,58,29,0,726,55,1,0,0,0,727,728,5,65,0,0,728,729,5,139,0, - 0,729,731,5,66,0,0,730,732,5,139,0,0,731,730,1,0,0,0,731,732,1,0,0,0, - 732,733,1,0,0,0,733,735,5,2,0,0,734,736,5,139,0,0,735,734,1,0,0,0,735, - 736,1,0,0,0,736,737,1,0,0,0,737,739,3,250,125,0,738,740,5,139,0,0,739, - 738,1,0,0,0,739,740,1,0,0,0,740,741,1,0,0,0,741,742,5,3,0,0,742,57,1, - 0,0,0,743,798,3,258,129,0,744,745,3,258,129,0,745,746,3,60,30,0,746,798, - 1,0,0,0,747,749,5,79,0,0,748,750,5,139,0,0,749,748,1,0,0,0,749,750,1, - 0,0,0,750,751,1,0,0,0,751,753,5,2,0,0,752,754,5,139,0,0,753,752,1,0,0, - 0,753,754,1,0,0,0,754,755,1,0,0,0,755,757,3,52,26,0,756,758,5,139,0,0, - 757,756,1,0,0,0,757,758,1,0,0,0,758,759,1,0,0,0,759,760,5,3,0,0,760,798, - 1,0,0,0,761,763,3,258,129,0,762,764,5,139,0,0,763,762,1,0,0,0,763,764, - 1,0,0,0,764,765,1,0,0,0,765,767,5,2,0,0,766,768,5,139,0,0,767,766,1,0, - 0,0,767,768,1,0,0,0,768,769,1,0,0,0,769,771,3,52,26,0,770,772,5,139,0, - 0,771,770,1,0,0,0,771,772,1,0,0,0,772,773,1,0,0,0,773,774,5,3,0,0,774, - 798,1,0,0,0,775,777,3,258,129,0,776,778,5,139,0,0,777,776,1,0,0,0,777, - 778,1,0,0,0,778,779,1,0,0,0,779,781,5,2,0,0,780,782,5,139,0,0,781,780, - 1,0,0,0,781,782,1,0,0,0,782,783,1,0,0,0,783,785,3,58,29,0,784,786,5,139, - 0,0,785,784,1,0,0,0,785,786,1,0,0,0,786,787,1,0,0,0,787,789,5,4,0,0,788, - 790,5,139,0,0,789,788,1,0,0,0,789,790,1,0,0,0,790,791,1,0,0,0,791,793, - 3,58,29,0,792,794,5,139,0,0,793,792,1,0,0,0,793,794,1,0,0,0,794,795,1, - 0,0,0,795,796,5,3,0,0,796,798,1,0,0,0,797,743,1,0,0,0,797,744,1,0,0,0, - 797,747,1,0,0,0,797,761,1,0,0,0,797,775,1,0,0,0,798,59,1,0,0,0,799,803, - 3,62,31,0,800,802,3,62,31,0,801,800,1,0,0,0,802,805,1,0,0,0,803,801,1, - 0,0,0,803,804,1,0,0,0,804,61,1,0,0,0,805,803,1,0,0,0,806,808,5,7,0,0, - 807,809,3,252,126,0,808,807,1,0,0,0,808,809,1,0,0,0,809,810,1,0,0,0,810, - 811,5,8,0,0,811,63,1,0,0,0,812,815,3,66,33,0,813,815,3,68,34,0,814,812, - 1,0,0,0,814,813,1,0,0,0,815,65,1,0,0,0,816,817,5,69,0,0,817,67,1,0,0, - 0,818,819,5,70,0,0,819,69,1,0,0,0,820,821,5,71,0,0,821,822,5,139,0,0, - 822,823,5,73,0,0,823,824,5,139,0,0,824,835,5,72,0,0,825,826,5,71,0,0, - 826,827,5,139,0,0,827,828,5,74,0,0,828,829,5,139,0,0,829,835,5,72,0,0, - 830,835,5,75,0,0,831,835,5,76,0,0,832,835,5,77,0,0,833,835,5,78,0,0,834, - 820,1,0,0,0,834,825,1,0,0,0,834,830,1,0,0,0,834,831,1,0,0,0,834,832,1, - 0,0,0,834,833,1,0,0,0,835,71,1,0,0,0,836,837,3,74,37,0,837,73,1,0,0,0, - 838,845,3,78,39,0,839,841,5,139,0,0,840,839,1,0,0,0,840,841,1,0,0,0,841, - 842,1,0,0,0,842,844,3,76,38,0,843,840,1,0,0,0,844,847,1,0,0,0,845,843, - 1,0,0,0,845,846,1,0,0,0,846,860,1,0,0,0,847,845,1,0,0,0,848,850,3,112, - 56,0,849,851,5,139,0,0,850,849,1,0,0,0,850,851,1,0,0,0,851,853,1,0,0, - 0,852,848,1,0,0,0,853,854,1,0,0,0,854,852,1,0,0,0,854,855,1,0,0,0,855, - 856,1,0,0,0,856,857,3,78,39,0,857,858,6,37,-1,0,858,860,1,0,0,0,859,838, - 1,0,0,0,859,852,1,0,0,0,860,75,1,0,0,0,861,862,5,79,0,0,862,863,5,139, - 0,0,863,865,5,80,0,0,864,866,5,139,0,0,865,864,1,0,0,0,865,866,1,0,0, - 0,866,867,1,0,0,0,867,874,3,78,39,0,868,870,5,79,0,0,869,871,5,139,0, - 0,870,869,1,0,0,0,870,871,1,0,0,0,871,872,1,0,0,0,872,874,3,78,39,0,873, - 861,1,0,0,0,873,868,1,0,0,0,874,77,1,0,0,0,875,878,3,80,40,0,876,878, - 3,82,41,0,877,875,1,0,0,0,877,876,1,0,0,0,878,79,1,0,0,0,879,881,3,88, - 44,0,880,882,5,139,0,0,881,880,1,0,0,0,881,882,1,0,0,0,882,884,1,0,0, - 0,883,879,1,0,0,0,884,887,1,0,0,0,885,883,1,0,0,0,885,886,1,0,0,0,886, - 888,1,0,0,0,887,885,1,0,0,0,888,925,3,112,56,0,889,891,3,88,44,0,890, - 892,5,139,0,0,891,890,1,0,0,0,891,892,1,0,0,0,892,894,1,0,0,0,893,889, - 1,0,0,0,894,897,1,0,0,0,895,893,1,0,0,0,895,896,1,0,0,0,896,898,1,0,0, - 0,897,895,1,0,0,0,898,905,3,86,43,0,899,901,5,139,0,0,900,899,1,0,0,0, - 900,901,1,0,0,0,901,902,1,0,0,0,902,904,3,86,43,0,903,900,1,0,0,0,904, - 907,1,0,0,0,905,903,1,0,0,0,905,906,1,0,0,0,906,912,1,0,0,0,907,905,1, - 0,0,0,908,910,5,139,0,0,909,908,1,0,0,0,909,910,1,0,0,0,910,911,1,0,0, - 0,911,913,3,112,56,0,912,909,1,0,0,0,912,913,1,0,0,0,913,925,1,0,0,0, - 914,916,3,88,44,0,915,917,5,139,0,0,916,915,1,0,0,0,916,917,1,0,0,0,917, - 919,1,0,0,0,918,914,1,0,0,0,919,920,1,0,0,0,920,918,1,0,0,0,920,921,1, - 0,0,0,921,922,1,0,0,0,922,923,6,40,-1,0,923,925,1,0,0,0,924,885,1,0,0, - 0,924,895,1,0,0,0,924,918,1,0,0,0,925,81,1,0,0,0,926,928,3,84,42,0,927, - 929,5,139,0,0,928,927,1,0,0,0,928,929,1,0,0,0,929,931,1,0,0,0,930,926, - 1,0,0,0,931,932,1,0,0,0,932,930,1,0,0,0,932,933,1,0,0,0,933,934,1,0,0, - 0,934,935,3,80,40,0,935,83,1,0,0,0,936,938,3,88,44,0,937,939,5,139,0, - 0,938,937,1,0,0,0,938,939,1,0,0,0,939,941,1,0,0,0,940,936,1,0,0,0,941, - 944,1,0,0,0,942,940,1,0,0,0,942,943,1,0,0,0,943,951,1,0,0,0,944,942,1, - 0,0,0,945,947,3,86,43,0,946,948,5,139,0,0,947,946,1,0,0,0,947,948,1,0, - 0,0,948,950,1,0,0,0,949,945,1,0,0,0,950,953,1,0,0,0,951,949,1,0,0,0,951, - 952,1,0,0,0,952,954,1,0,0,0,953,951,1,0,0,0,954,955,3,110,55,0,955,85, - 1,0,0,0,956,961,3,98,49,0,957,961,3,100,50,0,958,961,3,104,52,0,959,961, - 3,108,54,0,960,956,1,0,0,0,960,957,1,0,0,0,960,958,1,0,0,0,960,959,1, - 0,0,0,961,87,1,0,0,0,962,967,3,94,47,0,963,967,3,96,48,0,964,967,3,92, - 46,0,965,967,3,90,45,0,966,962,1,0,0,0,966,963,1,0,0,0,966,964,1,0,0, - 0,966,965,1,0,0,0,967,89,1,0,0,0,968,969,5,81,0,0,969,970,5,139,0,0,970, - 971,5,53,0,0,971,972,5,139,0,0,972,986,3,20,10,0,973,975,5,139,0,0,974, - 973,1,0,0,0,974,975,1,0,0,0,975,976,1,0,0,0,976,978,5,2,0,0,977,979,5, - 139,0,0,978,977,1,0,0,0,978,979,1,0,0,0,979,980,1,0,0,0,980,982,3,22, - 11,0,981,983,5,139,0,0,982,981,1,0,0,0,982,983,1,0,0,0,983,984,1,0,0, - 0,984,985,5,3,0,0,985,987,1,0,0,0,986,974,1,0,0,0,986,987,1,0,0,0,987, - 91,1,0,0,0,988,989,5,48,0,0,989,990,5,139,0,0,990,992,3,230,115,0,991, - 993,5,139,0,0,992,991,1,0,0,0,992,993,1,0,0,0,993,994,1,0,0,0,994,998, - 5,2,0,0,995,997,3,216,108,0,996,995,1,0,0,0,997,1000,1,0,0,0,998,996, - 1,0,0,0,998,999,1,0,0,0,999,1001,1,0,0,0,1000,998,1,0,0,0,1001,1002,5, - 3,0,0,1002,93,1,0,0,0,1003,1004,5,82,0,0,1004,1006,5,139,0,0,1005,1003, - 1,0,0,0,1005,1006,1,0,0,0,1006,1007,1,0,0,0,1007,1009,5,83,0,0,1008,1010, - 5,139,0,0,1009,1008,1,0,0,0,1009,1010,1,0,0,0,1010,1011,1,0,0,0,1011, - 1016,3,130,65,0,1012,1014,5,139,0,0,1013,1012,1,0,0,0,1013,1014,1,0,0, - 0,1014,1015,1,0,0,0,1015,1017,3,128,64,0,1016,1013,1,0,0,0,1016,1017, - 1,0,0,0,1017,95,1,0,0,0,1018,1020,5,84,0,0,1019,1021,5,139,0,0,1020,1019, - 1,0,0,0,1020,1021,1,0,0,0,1021,1022,1,0,0,0,1022,1023,3,164,82,0,1023, - 1024,5,139,0,0,1024,1025,5,94,0,0,1025,1026,5,139,0,0,1026,1027,3,242, - 121,0,1027,97,1,0,0,0,1028,1030,5,85,0,0,1029,1031,5,139,0,0,1030,1029, - 1,0,0,0,1030,1031,1,0,0,0,1031,1032,1,0,0,0,1032,1033,3,130,65,0,1033, - 99,1,0,0,0,1034,1036,5,86,0,0,1035,1037,5,139,0,0,1036,1035,1,0,0,0,1036, - 1037,1,0,0,0,1037,1038,1,0,0,0,1038,1043,3,130,65,0,1039,1040,5,139,0, - 0,1040,1042,3,102,51,0,1041,1039,1,0,0,0,1042,1045,1,0,0,0,1043,1041, - 1,0,0,0,1043,1044,1,0,0,0,1044,101,1,0,0,0,1045,1043,1,0,0,0,1046,1047, - 5,87,0,0,1047,1048,5,139,0,0,1048,1049,5,83,0,0,1049,1050,5,139,0,0,1050, - 1057,3,104,52,0,1051,1052,5,87,0,0,1052,1053,5,139,0,0,1053,1054,5,85, - 0,0,1054,1055,5,139,0,0,1055,1057,3,104,52,0,1056,1046,1,0,0,0,1056,1051, - 1,0,0,0,1057,103,1,0,0,0,1058,1060,5,88,0,0,1059,1061,5,139,0,0,1060, - 1059,1,0,0,0,1060,1061,1,0,0,0,1061,1062,1,0,0,0,1062,1073,3,106,53,0, - 1063,1065,5,139,0,0,1064,1063,1,0,0,0,1064,1065,1,0,0,0,1065,1066,1,0, - 0,0,1066,1068,5,4,0,0,1067,1069,5,139,0,0,1068,1067,1,0,0,0,1068,1069, - 1,0,0,0,1069,1070,1,0,0,0,1070,1072,3,106,53,0,1071,1064,1,0,0,0,1072, - 1075,1,0,0,0,1073,1071,1,0,0,0,1073,1074,1,0,0,0,1074,105,1,0,0,0,1075, - 1073,1,0,0,0,1076,1078,3,248,124,0,1077,1079,5,139,0,0,1078,1077,1,0, - 0,0,1078,1079,1,0,0,0,1079,1080,1,0,0,0,1080,1082,5,5,0,0,1081,1083,5, - 139,0,0,1082,1081,1,0,0,0,1082,1083,1,0,0,0,1083,1084,1,0,0,0,1084,1085, - 3,164,82,0,1085,107,1,0,0,0,1086,1088,5,89,0,0,1087,1089,5,139,0,0,1088, - 1087,1,0,0,0,1088,1089,1,0,0,0,1089,1090,1,0,0,0,1090,1101,3,164,82,0, - 1091,1093,5,139,0,0,1092,1091,1,0,0,0,1092,1093,1,0,0,0,1093,1094,1,0, - 0,0,1094,1096,5,4,0,0,1095,1097,5,139,0,0,1096,1095,1,0,0,0,1096,1097, - 1,0,0,0,1097,1098,1,0,0,0,1098,1100,3,164,82,0,1099,1092,1,0,0,0,1100, - 1103,1,0,0,0,1101,1099,1,0,0,0,1101,1102,1,0,0,0,1102,109,1,0,0,0,1103, - 1101,1,0,0,0,1104,1105,5,90,0,0,1105,1110,3,114,57,0,1106,1108,5,139, - 0,0,1107,1106,1,0,0,0,1107,1108,1,0,0,0,1108,1109,1,0,0,0,1109,1111,3, - 128,64,0,1110,1107,1,0,0,0,1110,1111,1,0,0,0,1111,111,1,0,0,0,1112,1113, - 5,91,0,0,1113,1114,3,114,57,0,1114,113,1,0,0,0,1115,1117,5,139,0,0,1116, - 1115,1,0,0,0,1116,1117,1,0,0,0,1117,1118,1,0,0,0,1118,1120,5,92,0,0,1119, - 1116,1,0,0,0,1119,1120,1,0,0,0,1120,1121,1,0,0,0,1121,1122,5,139,0,0, - 1122,1125,3,116,58,0,1123,1124,5,139,0,0,1124,1126,3,120,60,0,1125,1123, - 1,0,0,0,1125,1126,1,0,0,0,1126,1129,1,0,0,0,1127,1128,5,139,0,0,1128, - 1130,3,122,61,0,1129,1127,1,0,0,0,1129,1130,1,0,0,0,1130,1133,1,0,0,0, - 1131,1132,5,139,0,0,1132,1134,3,124,62,0,1133,1131,1,0,0,0,1133,1134, - 1,0,0,0,1134,115,1,0,0,0,1135,1146,5,93,0,0,1136,1138,5,139,0,0,1137, - 1136,1,0,0,0,1137,1138,1,0,0,0,1138,1139,1,0,0,0,1139,1141,5,4,0,0,1140, - 1142,5,139,0,0,1141,1140,1,0,0,0,1141,1142,1,0,0,0,1142,1143,1,0,0,0, - 1143,1145,3,118,59,0,1144,1137,1,0,0,0,1145,1148,1,0,0,0,1146,1144,1, - 0,0,0,1146,1147,1,0,0,0,1147,1164,1,0,0,0,1148,1146,1,0,0,0,1149,1160, - 3,118,59,0,1150,1152,5,139,0,0,1151,1150,1,0,0,0,1151,1152,1,0,0,0,1152, - 1153,1,0,0,0,1153,1155,5,4,0,0,1154,1156,5,139,0,0,1155,1154,1,0,0,0, - 1155,1156,1,0,0,0,1156,1157,1,0,0,0,1157,1159,3,118,59,0,1158,1151,1, - 0,0,0,1159,1162,1,0,0,0,1160,1158,1,0,0,0,1160,1161,1,0,0,0,1161,1164, - 1,0,0,0,1162,1160,1,0,0,0,1163,1135,1,0,0,0,1163,1149,1,0,0,0,1164,117, - 1,0,0,0,1165,1166,3,164,82,0,1166,1167,5,139,0,0,1167,1168,5,94,0,0,1168, - 1169,5,139,0,0,1169,1170,3,242,121,0,1170,1173,1,0,0,0,1171,1173,3,164, - 82,0,1172,1165,1,0,0,0,1172,1171,1,0,0,0,1173,119,1,0,0,0,1174,1175,5, - 95,0,0,1175,1176,5,139,0,0,1176,1177,5,96,0,0,1177,1178,5,139,0,0,1178, - 1186,3,126,63,0,1179,1181,5,4,0,0,1180,1182,5,139,0,0,1181,1180,1,0,0, - 0,1181,1182,1,0,0,0,1182,1183,1,0,0,0,1183,1185,3,126,63,0,1184,1179, - 1,0,0,0,1185,1188,1,0,0,0,1186,1184,1,0,0,0,1186,1187,1,0,0,0,1187,121, - 1,0,0,0,1188,1186,1,0,0,0,1189,1190,5,97,0,0,1190,1191,5,139,0,0,1191, - 1192,3,164,82,0,1192,123,1,0,0,0,1193,1194,5,98,0,0,1194,1195,5,139,0, - 0,1195,1196,3,164,82,0,1196,125,1,0,0,0,1197,1202,3,164,82,0,1198,1200, - 5,139,0,0,1199,1198,1,0,0,0,1199,1200,1,0,0,0,1200,1201,1,0,0,0,1201, - 1203,7,0,0,0,1202,1199,1,0,0,0,1202,1203,1,0,0,0,1203,127,1,0,0,0,1204, - 1205,5,103,0,0,1205,1206,5,139,0,0,1206,1207,3,164,82,0,1207,129,1,0, - 0,0,1208,1219,3,132,66,0,1209,1211,5,139,0,0,1210,1209,1,0,0,0,1210,1211, - 1,0,0,0,1211,1212,1,0,0,0,1212,1214,5,4,0,0,1213,1215,5,139,0,0,1214, - 1213,1,0,0,0,1214,1215,1,0,0,0,1215,1216,1,0,0,0,1216,1218,3,132,66,0, - 1217,1210,1,0,0,0,1218,1221,1,0,0,0,1219,1217,1,0,0,0,1219,1220,1,0,0, - 0,1220,131,1,0,0,0,1221,1219,1,0,0,0,1222,1224,3,242,121,0,1223,1225, - 5,139,0,0,1224,1223,1,0,0,0,1224,1225,1,0,0,0,1225,1226,1,0,0,0,1226, - 1228,5,5,0,0,1227,1229,5,139,0,0,1228,1227,1,0,0,0,1228,1229,1,0,0,0, - 1229,1230,1,0,0,0,1230,1231,3,134,67,0,1231,1234,1,0,0,0,1232,1234,3, - 134,67,0,1233,1222,1,0,0,0,1233,1232,1,0,0,0,1234,133,1,0,0,0,1235,1236, - 3,136,68,0,1236,135,1,0,0,0,1237,1244,3,138,69,0,1238,1240,5,139,0,0, - 1239,1238,1,0,0,0,1239,1240,1,0,0,0,1240,1241,1,0,0,0,1241,1243,3,140, - 70,0,1242,1239,1,0,0,0,1243,1246,1,0,0,0,1244,1242,1,0,0,0,1244,1245, - 1,0,0,0,1245,1252,1,0,0,0,1246,1244,1,0,0,0,1247,1248,5,2,0,0,1248,1249, - 3,136,68,0,1249,1250,5,3,0,0,1250,1252,1,0,0,0,1251,1237,1,0,0,0,1251, - 1247,1,0,0,0,1252,137,1,0,0,0,1253,1255,5,2,0,0,1254,1256,5,139,0,0,1255, - 1254,1,0,0,0,1255,1256,1,0,0,0,1256,1261,1,0,0,0,1257,1259,3,242,121, - 0,1258,1260,5,139,0,0,1259,1258,1,0,0,0,1259,1260,1,0,0,0,1260,1262,1, - 0,0,0,1261,1257,1,0,0,0,1261,1262,1,0,0,0,1262,1267,1,0,0,0,1263,1265, - 3,150,75,0,1264,1266,5,139,0,0,1265,1264,1,0,0,0,1265,1266,1,0,0,0,1266, - 1268,1,0,0,0,1267,1263,1,0,0,0,1267,1268,1,0,0,0,1268,1273,1,0,0,0,1269, - 1271,3,146,73,0,1270,1272,5,139,0,0,1271,1270,1,0,0,0,1271,1272,1,0,0, - 0,1272,1274,1,0,0,0,1273,1269,1,0,0,0,1273,1274,1,0,0,0,1274,1275,1,0, - 0,0,1275,1276,5,3,0,0,1276,139,1,0,0,0,1277,1279,3,142,71,0,1278,1280, - 5,139,0,0,1279,1278,1,0,0,0,1279,1280,1,0,0,0,1280,1281,1,0,0,0,1281, - 1282,3,138,69,0,1282,141,1,0,0,0,1283,1285,3,262,131,0,1284,1286,5,139, - 0,0,1285,1284,1,0,0,0,1285,1286,1,0,0,0,1286,1287,1,0,0,0,1287,1289,3, - 266,133,0,1288,1290,5,139,0,0,1289,1288,1,0,0,0,1289,1290,1,0,0,0,1290, - 1292,1,0,0,0,1291,1293,3,144,72,0,1292,1291,1,0,0,0,1292,1293,1,0,0,0, - 1293,1295,1,0,0,0,1294,1296,5,139,0,0,1295,1294,1,0,0,0,1295,1296,1,0, - 0,0,1296,1297,1,0,0,0,1297,1298,3,266,133,0,1298,1328,1,0,0,0,1299,1301, - 3,266,133,0,1300,1302,5,139,0,0,1301,1300,1,0,0,0,1301,1302,1,0,0,0,1302, + 7,1,0,0,0,352,353,5,52,0,0,353,354,5,139,0,0,354,356,5,2,0,0,355,357, + 5,139,0,0,356,355,1,0,0,0,356,357,1,0,0,0,357,358,1,0,0,0,358,360,3,72, + 36,0,359,361,5,139,0,0,360,359,1,0,0,0,360,361,1,0,0,0,361,362,1,0,0, + 0,362,363,5,3,0,0,363,364,5,139,0,0,364,365,5,68,0,0,365,366,5,139,0, + 0,366,367,5,125,0,0,367,9,1,0,0,0,368,369,5,48,0,0,369,370,5,139,0,0, + 370,372,3,258,129,0,371,373,5,139,0,0,372,371,1,0,0,0,372,373,1,0,0,0, + 373,374,1,0,0,0,374,376,5,5,0,0,375,377,5,139,0,0,376,375,1,0,0,0,376, + 377,1,0,0,0,377,378,1,0,0,0,378,379,3,216,108,0,379,11,1,0,0,0,380,381, + 5,49,0,0,381,382,5,139,0,0,382,383,5,87,0,0,383,384,5,139,0,0,384,385, + 5,56,0,0,385,386,5,139,0,0,386,387,3,256,128,0,387,388,5,139,0,0,388, + 389,5,115,0,0,389,390,5,139,0,0,390,391,5,125,0,0,391,13,1,0,0,0,392, + 393,5,85,0,0,393,394,5,139,0,0,394,395,5,50,0,0,395,396,5,139,0,0,396, + 398,3,230,115,0,397,399,5,139,0,0,398,397,1,0,0,0,398,399,1,0,0,0,399, + 400,1,0,0,0,400,402,5,2,0,0,401,403,5,139,0,0,402,401,1,0,0,0,402,403, + 1,0,0,0,403,405,1,0,0,0,404,406,3,16,8,0,405,404,1,0,0,0,405,406,1,0, + 0,0,406,408,1,0,0,0,407,409,5,139,0,0,408,407,1,0,0,0,408,409,1,0,0,0, + 409,411,1,0,0,0,410,412,3,18,9,0,411,410,1,0,0,0,411,412,1,0,0,0,412, + 423,1,0,0,0,413,415,5,139,0,0,414,413,1,0,0,0,414,415,1,0,0,0,415,416, + 1,0,0,0,416,418,5,4,0,0,417,419,5,139,0,0,418,417,1,0,0,0,418,419,1,0, + 0,0,419,420,1,0,0,0,420,422,3,18,9,0,421,414,1,0,0,0,422,425,1,0,0,0, + 423,421,1,0,0,0,423,424,1,0,0,0,424,427,1,0,0,0,425,423,1,0,0,0,426,428, + 5,139,0,0,427,426,1,0,0,0,427,428,1,0,0,0,428,429,1,0,0,0,429,430,5,3, + 0,0,430,431,5,139,0,0,431,432,5,94,0,0,432,433,5,139,0,0,433,434,3,164, + 82,0,434,15,1,0,0,0,435,446,3,258,129,0,436,438,5,139,0,0,437,436,1,0, + 0,0,437,438,1,0,0,0,438,439,1,0,0,0,439,441,5,4,0,0,440,442,5,139,0,0, + 441,440,1,0,0,0,441,442,1,0,0,0,442,443,1,0,0,0,443,445,3,258,129,0,444, + 437,1,0,0,0,445,448,1,0,0,0,446,444,1,0,0,0,446,447,1,0,0,0,447,17,1, + 0,0,0,448,446,1,0,0,0,449,451,3,258,129,0,450,452,5,139,0,0,451,450,1, + 0,0,0,451,452,1,0,0,0,452,453,1,0,0,0,453,454,5,6,0,0,454,456,5,5,0,0, + 455,457,5,139,0,0,456,455,1,0,0,0,456,457,1,0,0,0,457,458,1,0,0,0,458, + 459,3,216,108,0,459,19,1,0,0,0,460,462,5,7,0,0,461,463,5,139,0,0,462, + 461,1,0,0,0,462,463,1,0,0,0,463,464,1,0,0,0,464,475,5,125,0,0,465,467, + 5,139,0,0,466,465,1,0,0,0,466,467,1,0,0,0,467,468,1,0,0,0,468,470,5,4, + 0,0,469,471,5,139,0,0,470,469,1,0,0,0,470,471,1,0,0,0,471,472,1,0,0,0, + 472,474,5,125,0,0,473,466,1,0,0,0,474,477,1,0,0,0,475,473,1,0,0,0,475, + 476,1,0,0,0,476,478,1,0,0,0,477,475,1,0,0,0,478,494,5,8,0,0,479,494,5, + 125,0,0,480,482,5,51,0,0,481,483,5,139,0,0,482,481,1,0,0,0,482,483,1, + 0,0,0,483,484,1,0,0,0,484,486,5,2,0,0,485,487,5,139,0,0,486,485,1,0,0, + 0,486,487,1,0,0,0,487,488,1,0,0,0,488,490,5,125,0,0,489,491,5,139,0,0, + 490,489,1,0,0,0,490,491,1,0,0,0,491,492,1,0,0,0,492,494,5,3,0,0,493,460, + 1,0,0,0,493,479,1,0,0,0,493,480,1,0,0,0,494,21,1,0,0,0,495,506,3,24,12, + 0,496,498,5,139,0,0,497,496,1,0,0,0,497,498,1,0,0,0,498,499,1,0,0,0,499, + 501,5,4,0,0,500,502,5,139,0,0,501,500,1,0,0,0,501,502,1,0,0,0,502,503, + 1,0,0,0,503,505,3,24,12,0,504,497,1,0,0,0,505,508,1,0,0,0,506,504,1,0, + 0,0,506,507,1,0,0,0,507,23,1,0,0,0,508,506,1,0,0,0,509,511,3,258,129, + 0,510,512,5,139,0,0,511,510,1,0,0,0,511,512,1,0,0,0,512,513,1,0,0,0,513, + 515,5,5,0,0,514,516,5,139,0,0,515,514,1,0,0,0,515,516,1,0,0,0,516,517, + 1,0,0,0,517,518,3,216,108,0,518,25,1,0,0,0,519,526,3,28,14,0,520,526, + 3,30,15,0,521,526,3,32,16,0,522,526,3,36,18,0,523,526,3,38,19,0,524,526, + 3,40,20,0,525,519,1,0,0,0,525,520,1,0,0,0,525,521,1,0,0,0,525,522,1,0, + 0,0,525,523,1,0,0,0,525,524,1,0,0,0,526,27,1,0,0,0,527,528,5,85,0,0,528, + 529,5,139,0,0,529,530,5,55,0,0,530,531,5,139,0,0,531,532,5,56,0,0,532, + 533,5,139,0,0,533,535,3,256,128,0,534,536,5,139,0,0,535,534,1,0,0,0,535, + 536,1,0,0,0,536,537,1,0,0,0,537,539,5,2,0,0,538,540,5,139,0,0,539,538, + 1,0,0,0,539,540,1,0,0,0,540,541,1,0,0,0,541,543,3,52,26,0,542,544,5,139, + 0,0,543,542,1,0,0,0,543,544,1,0,0,0,544,545,1,0,0,0,545,547,5,4,0,0,546, + 548,5,139,0,0,547,546,1,0,0,0,547,548,1,0,0,0,548,549,1,0,0,0,549,550, + 3,56,28,0,550,552,1,0,0,0,551,553,5,139,0,0,552,551,1,0,0,0,552,553,1, + 0,0,0,553,554,1,0,0,0,554,555,5,3,0,0,555,29,1,0,0,0,556,557,5,85,0,0, + 557,558,5,139,0,0,558,559,5,67,0,0,559,560,5,139,0,0,560,561,5,56,0,0, + 561,562,5,139,0,0,562,564,3,256,128,0,563,565,5,139,0,0,564,563,1,0,0, + 0,564,565,1,0,0,0,565,566,1,0,0,0,566,568,5,2,0,0,567,569,5,139,0,0,568, + 567,1,0,0,0,568,569,1,0,0,0,569,570,1,0,0,0,570,572,3,34,17,0,571,573, + 5,139,0,0,572,571,1,0,0,0,572,573,1,0,0,0,573,582,1,0,0,0,574,576,5,4, + 0,0,575,577,5,139,0,0,576,575,1,0,0,0,576,577,1,0,0,0,577,578,1,0,0,0, + 578,580,3,52,26,0,579,581,5,139,0,0,580,579,1,0,0,0,580,581,1,0,0,0,581, + 583,1,0,0,0,582,574,1,0,0,0,582,583,1,0,0,0,583,592,1,0,0,0,584,586,5, + 4,0,0,585,587,5,139,0,0,586,585,1,0,0,0,586,587,1,0,0,0,587,588,1,0,0, + 0,588,590,3,258,129,0,589,591,5,139,0,0,590,589,1,0,0,0,590,591,1,0,0, + 0,591,593,1,0,0,0,592,584,1,0,0,0,592,593,1,0,0,0,593,594,1,0,0,0,594, + 595,5,3,0,0,595,31,1,0,0,0,596,597,5,85,0,0,597,598,5,139,0,0,598,599, + 5,67,0,0,599,600,5,139,0,0,600,601,5,56,0,0,601,602,5,139,0,0,602,603, + 5,57,0,0,603,604,5,139,0,0,604,606,3,256,128,0,605,607,5,139,0,0,606, + 605,1,0,0,0,606,607,1,0,0,0,607,608,1,0,0,0,608,610,5,2,0,0,609,611,5, + 139,0,0,610,609,1,0,0,0,610,611,1,0,0,0,611,612,1,0,0,0,612,614,3,34, + 17,0,613,615,5,139,0,0,614,613,1,0,0,0,614,615,1,0,0,0,615,621,1,0,0, + 0,616,618,5,4,0,0,617,619,5,139,0,0,618,617,1,0,0,0,618,619,1,0,0,0,619, + 620,1,0,0,0,620,622,3,34,17,0,621,616,1,0,0,0,622,623,1,0,0,0,623,621, + 1,0,0,0,623,624,1,0,0,0,624,626,1,0,0,0,625,627,5,139,0,0,626,625,1,0, + 0,0,626,627,1,0,0,0,627,636,1,0,0,0,628,630,5,4,0,0,629,631,5,139,0,0, + 630,629,1,0,0,0,630,631,1,0,0,0,631,632,1,0,0,0,632,634,3,52,26,0,633, + 635,5,139,0,0,634,633,1,0,0,0,634,635,1,0,0,0,635,637,1,0,0,0,636,628, + 1,0,0,0,636,637,1,0,0,0,637,646,1,0,0,0,638,640,5,4,0,0,639,641,5,139, + 0,0,640,639,1,0,0,0,640,641,1,0,0,0,641,642,1,0,0,0,642,644,3,258,129, + 0,643,645,5,139,0,0,644,643,1,0,0,0,644,645,1,0,0,0,645,647,1,0,0,0,646, + 638,1,0,0,0,646,647,1,0,0,0,647,648,1,0,0,0,648,649,5,3,0,0,649,33,1, + 0,0,0,650,651,5,53,0,0,651,652,5,139,0,0,652,653,3,256,128,0,653,654, + 5,139,0,0,654,655,5,68,0,0,655,656,5,139,0,0,656,657,3,256,128,0,657, + 35,1,0,0,0,658,659,5,85,0,0,659,660,5,139,0,0,660,661,5,58,0,0,661,662, + 5,139,0,0,662,663,5,59,0,0,663,664,5,139,0,0,664,665,3,256,128,0,665, + 37,1,0,0,0,666,667,5,60,0,0,667,668,5,139,0,0,668,669,5,56,0,0,669,670, + 5,139,0,0,670,671,3,256,128,0,671,39,1,0,0,0,672,673,5,61,0,0,673,674, + 5,139,0,0,674,675,5,56,0,0,675,676,5,139,0,0,676,677,3,256,128,0,677, + 678,5,139,0,0,678,679,3,42,21,0,679,41,1,0,0,0,680,685,3,44,22,0,681, + 685,3,46,23,0,682,685,3,48,24,0,683,685,3,50,25,0,684,680,1,0,0,0,684, + 681,1,0,0,0,684,682,1,0,0,0,684,683,1,0,0,0,685,43,1,0,0,0,686,687,5, + 64,0,0,687,688,5,139,0,0,688,689,3,250,125,0,689,690,5,139,0,0,690,695, + 3,58,29,0,691,692,5,139,0,0,692,693,5,62,0,0,693,694,5,139,0,0,694,696, + 3,164,82,0,695,691,1,0,0,0,695,696,1,0,0,0,696,45,1,0,0,0,697,698,5,60, + 0,0,698,699,5,139,0,0,699,700,3,250,125,0,700,47,1,0,0,0,701,702,5,63, + 0,0,702,703,5,139,0,0,703,704,5,68,0,0,704,705,5,139,0,0,705,706,3,256, + 128,0,706,49,1,0,0,0,707,708,5,63,0,0,708,709,5,139,0,0,709,710,3,250, + 125,0,710,711,5,139,0,0,711,712,5,68,0,0,712,713,5,139,0,0,713,714,3, + 250,125,0,714,51,1,0,0,0,715,726,3,54,27,0,716,718,5,139,0,0,717,716, + 1,0,0,0,717,718,1,0,0,0,718,719,1,0,0,0,719,721,5,4,0,0,720,722,5,139, + 0,0,721,720,1,0,0,0,721,722,1,0,0,0,722,723,1,0,0,0,723,725,3,54,27,0, + 724,717,1,0,0,0,725,728,1,0,0,0,726,724,1,0,0,0,726,727,1,0,0,0,727,53, + 1,0,0,0,728,726,1,0,0,0,729,730,3,250,125,0,730,731,5,139,0,0,731,732, + 3,58,29,0,732,55,1,0,0,0,733,734,5,65,0,0,734,735,5,139,0,0,735,737,5, + 66,0,0,736,738,5,139,0,0,737,736,1,0,0,0,737,738,1,0,0,0,738,739,1,0, + 0,0,739,741,5,2,0,0,740,742,5,139,0,0,741,740,1,0,0,0,741,742,1,0,0,0, + 742,743,1,0,0,0,743,745,3,250,125,0,744,746,5,139,0,0,745,744,1,0,0,0, + 745,746,1,0,0,0,746,747,1,0,0,0,747,748,5,3,0,0,748,57,1,0,0,0,749,804, + 3,258,129,0,750,751,3,258,129,0,751,752,3,60,30,0,752,804,1,0,0,0,753, + 755,5,79,0,0,754,756,5,139,0,0,755,754,1,0,0,0,755,756,1,0,0,0,756,757, + 1,0,0,0,757,759,5,2,0,0,758,760,5,139,0,0,759,758,1,0,0,0,759,760,1,0, + 0,0,760,761,1,0,0,0,761,763,3,52,26,0,762,764,5,139,0,0,763,762,1,0,0, + 0,763,764,1,0,0,0,764,765,1,0,0,0,765,766,5,3,0,0,766,804,1,0,0,0,767, + 769,3,258,129,0,768,770,5,139,0,0,769,768,1,0,0,0,769,770,1,0,0,0,770, + 771,1,0,0,0,771,773,5,2,0,0,772,774,5,139,0,0,773,772,1,0,0,0,773,774, + 1,0,0,0,774,775,1,0,0,0,775,777,3,52,26,0,776,778,5,139,0,0,777,776,1, + 0,0,0,777,778,1,0,0,0,778,779,1,0,0,0,779,780,5,3,0,0,780,804,1,0,0,0, + 781,783,3,258,129,0,782,784,5,139,0,0,783,782,1,0,0,0,783,784,1,0,0,0, + 784,785,1,0,0,0,785,787,5,2,0,0,786,788,5,139,0,0,787,786,1,0,0,0,787, + 788,1,0,0,0,788,789,1,0,0,0,789,791,3,58,29,0,790,792,5,139,0,0,791,790, + 1,0,0,0,791,792,1,0,0,0,792,793,1,0,0,0,793,795,5,4,0,0,794,796,5,139, + 0,0,795,794,1,0,0,0,795,796,1,0,0,0,796,797,1,0,0,0,797,799,3,58,29,0, + 798,800,5,139,0,0,799,798,1,0,0,0,799,800,1,0,0,0,800,801,1,0,0,0,801, + 802,5,3,0,0,802,804,1,0,0,0,803,749,1,0,0,0,803,750,1,0,0,0,803,753,1, + 0,0,0,803,767,1,0,0,0,803,781,1,0,0,0,804,59,1,0,0,0,805,809,3,62,31, + 0,806,808,3,62,31,0,807,806,1,0,0,0,808,811,1,0,0,0,809,807,1,0,0,0,809, + 810,1,0,0,0,810,61,1,0,0,0,811,809,1,0,0,0,812,814,5,7,0,0,813,815,3, + 252,126,0,814,813,1,0,0,0,814,815,1,0,0,0,815,816,1,0,0,0,816,817,5,8, + 0,0,817,63,1,0,0,0,818,821,3,66,33,0,819,821,3,68,34,0,820,818,1,0,0, + 0,820,819,1,0,0,0,821,65,1,0,0,0,822,823,5,69,0,0,823,67,1,0,0,0,824, + 825,5,70,0,0,825,69,1,0,0,0,826,827,5,71,0,0,827,828,5,139,0,0,828,829, + 5,73,0,0,829,830,5,139,0,0,830,841,5,72,0,0,831,832,5,71,0,0,832,833, + 5,139,0,0,833,834,5,74,0,0,834,835,5,139,0,0,835,841,5,72,0,0,836,841, + 5,75,0,0,837,841,5,76,0,0,838,841,5,77,0,0,839,841,5,78,0,0,840,826,1, + 0,0,0,840,831,1,0,0,0,840,836,1,0,0,0,840,837,1,0,0,0,840,838,1,0,0,0, + 840,839,1,0,0,0,841,71,1,0,0,0,842,843,3,74,37,0,843,73,1,0,0,0,844,851, + 3,78,39,0,845,847,5,139,0,0,846,845,1,0,0,0,846,847,1,0,0,0,847,848,1, + 0,0,0,848,850,3,76,38,0,849,846,1,0,0,0,850,853,1,0,0,0,851,849,1,0,0, + 0,851,852,1,0,0,0,852,866,1,0,0,0,853,851,1,0,0,0,854,856,3,112,56,0, + 855,857,5,139,0,0,856,855,1,0,0,0,856,857,1,0,0,0,857,859,1,0,0,0,858, + 854,1,0,0,0,859,860,1,0,0,0,860,858,1,0,0,0,860,861,1,0,0,0,861,862,1, + 0,0,0,862,863,3,78,39,0,863,864,6,37,-1,0,864,866,1,0,0,0,865,844,1,0, + 0,0,865,858,1,0,0,0,866,75,1,0,0,0,867,868,5,79,0,0,868,869,5,139,0,0, + 869,871,5,80,0,0,870,872,5,139,0,0,871,870,1,0,0,0,871,872,1,0,0,0,872, + 873,1,0,0,0,873,880,3,78,39,0,874,876,5,79,0,0,875,877,5,139,0,0,876, + 875,1,0,0,0,876,877,1,0,0,0,877,878,1,0,0,0,878,880,3,78,39,0,879,867, + 1,0,0,0,879,874,1,0,0,0,880,77,1,0,0,0,881,884,3,80,40,0,882,884,3,82, + 41,0,883,881,1,0,0,0,883,882,1,0,0,0,884,79,1,0,0,0,885,887,3,88,44,0, + 886,888,5,139,0,0,887,886,1,0,0,0,887,888,1,0,0,0,888,890,1,0,0,0,889, + 885,1,0,0,0,890,893,1,0,0,0,891,889,1,0,0,0,891,892,1,0,0,0,892,894,1, + 0,0,0,893,891,1,0,0,0,894,931,3,112,56,0,895,897,3,88,44,0,896,898,5, + 139,0,0,897,896,1,0,0,0,897,898,1,0,0,0,898,900,1,0,0,0,899,895,1,0,0, + 0,900,903,1,0,0,0,901,899,1,0,0,0,901,902,1,0,0,0,902,904,1,0,0,0,903, + 901,1,0,0,0,904,911,3,86,43,0,905,907,5,139,0,0,906,905,1,0,0,0,906,907, + 1,0,0,0,907,908,1,0,0,0,908,910,3,86,43,0,909,906,1,0,0,0,910,913,1,0, + 0,0,911,909,1,0,0,0,911,912,1,0,0,0,912,918,1,0,0,0,913,911,1,0,0,0,914, + 916,5,139,0,0,915,914,1,0,0,0,915,916,1,0,0,0,916,917,1,0,0,0,917,919, + 3,112,56,0,918,915,1,0,0,0,918,919,1,0,0,0,919,931,1,0,0,0,920,922,3, + 88,44,0,921,923,5,139,0,0,922,921,1,0,0,0,922,923,1,0,0,0,923,925,1,0, + 0,0,924,920,1,0,0,0,925,926,1,0,0,0,926,924,1,0,0,0,926,927,1,0,0,0,927, + 928,1,0,0,0,928,929,6,40,-1,0,929,931,1,0,0,0,930,891,1,0,0,0,930,901, + 1,0,0,0,930,924,1,0,0,0,931,81,1,0,0,0,932,934,3,84,42,0,933,935,5,139, + 0,0,934,933,1,0,0,0,934,935,1,0,0,0,935,937,1,0,0,0,936,932,1,0,0,0,937, + 938,1,0,0,0,938,936,1,0,0,0,938,939,1,0,0,0,939,940,1,0,0,0,940,941,3, + 80,40,0,941,83,1,0,0,0,942,944,3,88,44,0,943,945,5,139,0,0,944,943,1, + 0,0,0,944,945,1,0,0,0,945,947,1,0,0,0,946,942,1,0,0,0,947,950,1,0,0,0, + 948,946,1,0,0,0,948,949,1,0,0,0,949,957,1,0,0,0,950,948,1,0,0,0,951,953, + 3,86,43,0,952,954,5,139,0,0,953,952,1,0,0,0,953,954,1,0,0,0,954,956,1, + 0,0,0,955,951,1,0,0,0,956,959,1,0,0,0,957,955,1,0,0,0,957,958,1,0,0,0, + 958,960,1,0,0,0,959,957,1,0,0,0,960,961,3,110,55,0,961,85,1,0,0,0,962, + 967,3,98,49,0,963,967,3,100,50,0,964,967,3,104,52,0,965,967,3,108,54, + 0,966,962,1,0,0,0,966,963,1,0,0,0,966,964,1,0,0,0,966,965,1,0,0,0,967, + 87,1,0,0,0,968,973,3,94,47,0,969,973,3,96,48,0,970,973,3,92,46,0,971, + 973,3,90,45,0,972,968,1,0,0,0,972,969,1,0,0,0,972,970,1,0,0,0,972,971, + 1,0,0,0,973,89,1,0,0,0,974,975,5,81,0,0,975,976,5,139,0,0,976,977,5,53, + 0,0,977,978,5,139,0,0,978,992,3,20,10,0,979,981,5,139,0,0,980,979,1,0, + 0,0,980,981,1,0,0,0,981,982,1,0,0,0,982,984,5,2,0,0,983,985,5,139,0,0, + 984,983,1,0,0,0,984,985,1,0,0,0,985,986,1,0,0,0,986,988,3,22,11,0,987, + 989,5,139,0,0,988,987,1,0,0,0,988,989,1,0,0,0,989,990,1,0,0,0,990,991, + 5,3,0,0,991,993,1,0,0,0,992,980,1,0,0,0,992,993,1,0,0,0,993,998,1,0,0, + 0,994,996,5,139,0,0,995,994,1,0,0,0,995,996,1,0,0,0,996,997,1,0,0,0,997, + 999,3,128,64,0,998,995,1,0,0,0,998,999,1,0,0,0,999,91,1,0,0,0,1000,1001, + 5,48,0,0,1001,1002,5,139,0,0,1002,1004,3,230,115,0,1003,1005,5,139,0, + 0,1004,1003,1,0,0,0,1004,1005,1,0,0,0,1005,1006,1,0,0,0,1006,1010,5,2, + 0,0,1007,1009,3,216,108,0,1008,1007,1,0,0,0,1009,1012,1,0,0,0,1010,1008, + 1,0,0,0,1010,1011,1,0,0,0,1011,1013,1,0,0,0,1012,1010,1,0,0,0,1013,1014, + 5,3,0,0,1014,93,1,0,0,0,1015,1016,5,82,0,0,1016,1018,5,139,0,0,1017,1015, + 1,0,0,0,1017,1018,1,0,0,0,1018,1019,1,0,0,0,1019,1021,5,83,0,0,1020,1022, + 5,139,0,0,1021,1020,1,0,0,0,1021,1022,1,0,0,0,1022,1023,1,0,0,0,1023, + 1028,3,130,65,0,1024,1026,5,139,0,0,1025,1024,1,0,0,0,1025,1026,1,0,0, + 0,1026,1027,1,0,0,0,1027,1029,3,128,64,0,1028,1025,1,0,0,0,1028,1029, + 1,0,0,0,1029,95,1,0,0,0,1030,1032,5,84,0,0,1031,1033,5,139,0,0,1032,1031, + 1,0,0,0,1032,1033,1,0,0,0,1033,1034,1,0,0,0,1034,1035,3,164,82,0,1035, + 1036,5,139,0,0,1036,1037,5,94,0,0,1037,1038,5,139,0,0,1038,1039,3,242, + 121,0,1039,97,1,0,0,0,1040,1042,5,85,0,0,1041,1043,5,139,0,0,1042,1041, + 1,0,0,0,1042,1043,1,0,0,0,1043,1044,1,0,0,0,1044,1045,3,130,65,0,1045, + 99,1,0,0,0,1046,1048,5,86,0,0,1047,1049,5,139,0,0,1048,1047,1,0,0,0,1048, + 1049,1,0,0,0,1049,1050,1,0,0,0,1050,1055,3,130,65,0,1051,1052,5,139,0, + 0,1052,1054,3,102,51,0,1053,1051,1,0,0,0,1054,1057,1,0,0,0,1055,1053, + 1,0,0,0,1055,1056,1,0,0,0,1056,101,1,0,0,0,1057,1055,1,0,0,0,1058,1059, + 5,87,0,0,1059,1060,5,139,0,0,1060,1061,5,83,0,0,1061,1062,5,139,0,0,1062, + 1069,3,104,52,0,1063,1064,5,87,0,0,1064,1065,5,139,0,0,1065,1066,5,85, + 0,0,1066,1067,5,139,0,0,1067,1069,3,104,52,0,1068,1058,1,0,0,0,1068,1063, + 1,0,0,0,1069,103,1,0,0,0,1070,1072,5,88,0,0,1071,1073,5,139,0,0,1072, + 1071,1,0,0,0,1072,1073,1,0,0,0,1073,1074,1,0,0,0,1074,1085,3,106,53,0, + 1075,1077,5,139,0,0,1076,1075,1,0,0,0,1076,1077,1,0,0,0,1077,1078,1,0, + 0,0,1078,1080,5,4,0,0,1079,1081,5,139,0,0,1080,1079,1,0,0,0,1080,1081, + 1,0,0,0,1081,1082,1,0,0,0,1082,1084,3,106,53,0,1083,1076,1,0,0,0,1084, + 1087,1,0,0,0,1085,1083,1,0,0,0,1085,1086,1,0,0,0,1086,105,1,0,0,0,1087, + 1085,1,0,0,0,1088,1090,3,248,124,0,1089,1091,5,139,0,0,1090,1089,1,0, + 0,0,1090,1091,1,0,0,0,1091,1092,1,0,0,0,1092,1094,5,5,0,0,1093,1095,5, + 139,0,0,1094,1093,1,0,0,0,1094,1095,1,0,0,0,1095,1096,1,0,0,0,1096,1097, + 3,164,82,0,1097,107,1,0,0,0,1098,1100,5,89,0,0,1099,1101,5,139,0,0,1100, + 1099,1,0,0,0,1100,1101,1,0,0,0,1101,1102,1,0,0,0,1102,1113,3,164,82,0, + 1103,1105,5,139,0,0,1104,1103,1,0,0,0,1104,1105,1,0,0,0,1105,1106,1,0, + 0,0,1106,1108,5,4,0,0,1107,1109,5,139,0,0,1108,1107,1,0,0,0,1108,1109, + 1,0,0,0,1109,1110,1,0,0,0,1110,1112,3,164,82,0,1111,1104,1,0,0,0,1112, + 1115,1,0,0,0,1113,1111,1,0,0,0,1113,1114,1,0,0,0,1114,109,1,0,0,0,1115, + 1113,1,0,0,0,1116,1117,5,90,0,0,1117,1122,3,114,57,0,1118,1120,5,139, + 0,0,1119,1118,1,0,0,0,1119,1120,1,0,0,0,1120,1121,1,0,0,0,1121,1123,3, + 128,64,0,1122,1119,1,0,0,0,1122,1123,1,0,0,0,1123,111,1,0,0,0,1124,1125, + 5,91,0,0,1125,1126,3,114,57,0,1126,113,1,0,0,0,1127,1129,5,139,0,0,1128, + 1127,1,0,0,0,1128,1129,1,0,0,0,1129,1130,1,0,0,0,1130,1132,5,92,0,0,1131, + 1128,1,0,0,0,1131,1132,1,0,0,0,1132,1133,1,0,0,0,1133,1134,5,139,0,0, + 1134,1137,3,116,58,0,1135,1136,5,139,0,0,1136,1138,3,120,60,0,1137,1135, + 1,0,0,0,1137,1138,1,0,0,0,1138,1141,1,0,0,0,1139,1140,5,139,0,0,1140, + 1142,3,122,61,0,1141,1139,1,0,0,0,1141,1142,1,0,0,0,1142,1145,1,0,0,0, + 1143,1144,5,139,0,0,1144,1146,3,124,62,0,1145,1143,1,0,0,0,1145,1146, + 1,0,0,0,1146,115,1,0,0,0,1147,1158,5,93,0,0,1148,1150,5,139,0,0,1149, + 1148,1,0,0,0,1149,1150,1,0,0,0,1150,1151,1,0,0,0,1151,1153,5,4,0,0,1152, + 1154,5,139,0,0,1153,1152,1,0,0,0,1153,1154,1,0,0,0,1154,1155,1,0,0,0, + 1155,1157,3,118,59,0,1156,1149,1,0,0,0,1157,1160,1,0,0,0,1158,1156,1, + 0,0,0,1158,1159,1,0,0,0,1159,1176,1,0,0,0,1160,1158,1,0,0,0,1161,1172, + 3,118,59,0,1162,1164,5,139,0,0,1163,1162,1,0,0,0,1163,1164,1,0,0,0,1164, + 1165,1,0,0,0,1165,1167,5,4,0,0,1166,1168,5,139,0,0,1167,1166,1,0,0,0, + 1167,1168,1,0,0,0,1168,1169,1,0,0,0,1169,1171,3,118,59,0,1170,1163,1, + 0,0,0,1171,1174,1,0,0,0,1172,1170,1,0,0,0,1172,1173,1,0,0,0,1173,1176, + 1,0,0,0,1174,1172,1,0,0,0,1175,1147,1,0,0,0,1175,1161,1,0,0,0,1176,117, + 1,0,0,0,1177,1178,3,164,82,0,1178,1179,5,139,0,0,1179,1180,5,94,0,0,1180, + 1181,5,139,0,0,1181,1182,3,242,121,0,1182,1185,1,0,0,0,1183,1185,3,164, + 82,0,1184,1177,1,0,0,0,1184,1183,1,0,0,0,1185,119,1,0,0,0,1186,1187,5, + 95,0,0,1187,1188,5,139,0,0,1188,1189,5,96,0,0,1189,1190,5,139,0,0,1190, + 1198,3,126,63,0,1191,1193,5,4,0,0,1192,1194,5,139,0,0,1193,1192,1,0,0, + 0,1193,1194,1,0,0,0,1194,1195,1,0,0,0,1195,1197,3,126,63,0,1196,1191, + 1,0,0,0,1197,1200,1,0,0,0,1198,1196,1,0,0,0,1198,1199,1,0,0,0,1199,121, + 1,0,0,0,1200,1198,1,0,0,0,1201,1202,5,97,0,0,1202,1203,5,139,0,0,1203, + 1204,3,164,82,0,1204,123,1,0,0,0,1205,1206,5,98,0,0,1206,1207,5,139,0, + 0,1207,1208,3,164,82,0,1208,125,1,0,0,0,1209,1214,3,164,82,0,1210,1212, + 5,139,0,0,1211,1210,1,0,0,0,1211,1212,1,0,0,0,1212,1213,1,0,0,0,1213, + 1215,7,0,0,0,1214,1211,1,0,0,0,1214,1215,1,0,0,0,1215,127,1,0,0,0,1216, + 1217,5,103,0,0,1217,1218,5,139,0,0,1218,1219,3,164,82,0,1219,129,1,0, + 0,0,1220,1231,3,132,66,0,1221,1223,5,139,0,0,1222,1221,1,0,0,0,1222,1223, + 1,0,0,0,1223,1224,1,0,0,0,1224,1226,5,4,0,0,1225,1227,5,139,0,0,1226, + 1225,1,0,0,0,1226,1227,1,0,0,0,1227,1228,1,0,0,0,1228,1230,3,132,66,0, + 1229,1222,1,0,0,0,1230,1233,1,0,0,0,1231,1229,1,0,0,0,1231,1232,1,0,0, + 0,1232,131,1,0,0,0,1233,1231,1,0,0,0,1234,1236,3,242,121,0,1235,1237, + 5,139,0,0,1236,1235,1,0,0,0,1236,1237,1,0,0,0,1237,1238,1,0,0,0,1238, + 1240,5,5,0,0,1239,1241,5,139,0,0,1240,1239,1,0,0,0,1240,1241,1,0,0,0, + 1241,1242,1,0,0,0,1242,1243,3,134,67,0,1243,1246,1,0,0,0,1244,1246,3, + 134,67,0,1245,1234,1,0,0,0,1245,1244,1,0,0,0,1246,133,1,0,0,0,1247,1248, + 3,136,68,0,1248,135,1,0,0,0,1249,1256,3,138,69,0,1250,1252,5,139,0,0, + 1251,1250,1,0,0,0,1251,1252,1,0,0,0,1252,1253,1,0,0,0,1253,1255,3,140, + 70,0,1254,1251,1,0,0,0,1255,1258,1,0,0,0,1256,1254,1,0,0,0,1256,1257, + 1,0,0,0,1257,1264,1,0,0,0,1258,1256,1,0,0,0,1259,1260,5,2,0,0,1260,1261, + 3,136,68,0,1261,1262,5,3,0,0,1262,1264,1,0,0,0,1263,1249,1,0,0,0,1263, + 1259,1,0,0,0,1264,137,1,0,0,0,1265,1267,5,2,0,0,1266,1268,5,139,0,0,1267, + 1266,1,0,0,0,1267,1268,1,0,0,0,1268,1273,1,0,0,0,1269,1271,3,242,121, + 0,1270,1272,5,139,0,0,1271,1270,1,0,0,0,1271,1272,1,0,0,0,1272,1274,1, + 0,0,0,1273,1269,1,0,0,0,1273,1274,1,0,0,0,1274,1279,1,0,0,0,1275,1277, + 3,150,75,0,1276,1278,5,139,0,0,1277,1276,1,0,0,0,1277,1278,1,0,0,0,1278, + 1280,1,0,0,0,1279,1275,1,0,0,0,1279,1280,1,0,0,0,1280,1285,1,0,0,0,1281, + 1283,3,146,73,0,1282,1284,5,139,0,0,1283,1282,1,0,0,0,1283,1284,1,0,0, + 0,1284,1286,1,0,0,0,1285,1281,1,0,0,0,1285,1286,1,0,0,0,1286,1287,1,0, + 0,0,1287,1288,5,3,0,0,1288,139,1,0,0,0,1289,1291,3,142,71,0,1290,1292, + 5,139,0,0,1291,1290,1,0,0,0,1291,1292,1,0,0,0,1292,1293,1,0,0,0,1293, + 1294,3,138,69,0,1294,141,1,0,0,0,1295,1297,3,262,131,0,1296,1298,5,139, + 0,0,1297,1296,1,0,0,0,1297,1298,1,0,0,0,1298,1299,1,0,0,0,1299,1301,3, + 266,133,0,1300,1302,5,139,0,0,1301,1300,1,0,0,0,1301,1302,1,0,0,0,1302, 1304,1,0,0,0,1303,1305,3,144,72,0,1304,1303,1,0,0,0,1304,1305,1,0,0,0, 1305,1307,1,0,0,0,1306,1308,5,139,0,0,1307,1306,1,0,0,0,1307,1308,1,0, - 0,0,1308,1309,1,0,0,0,1309,1311,3,266,133,0,1310,1312,5,139,0,0,1311, - 1310,1,0,0,0,1311,1312,1,0,0,0,1312,1313,1,0,0,0,1313,1314,3,264,132, - 0,1314,1328,1,0,0,0,1315,1317,3,266,133,0,1316,1318,5,139,0,0,1317,1316, - 1,0,0,0,1317,1318,1,0,0,0,1318,1320,1,0,0,0,1319,1321,3,144,72,0,1320, - 1319,1,0,0,0,1320,1321,1,0,0,0,1321,1323,1,0,0,0,1322,1324,5,139,0,0, - 1323,1322,1,0,0,0,1323,1324,1,0,0,0,1324,1325,1,0,0,0,1325,1326,3,266, - 133,0,1326,1328,1,0,0,0,1327,1283,1,0,0,0,1327,1299,1,0,0,0,1327,1315, - 1,0,0,0,1328,143,1,0,0,0,1329,1331,5,7,0,0,1330,1332,5,139,0,0,1331,1330, - 1,0,0,0,1331,1332,1,0,0,0,1332,1337,1,0,0,0,1333,1335,3,242,121,0,1334, - 1336,5,139,0,0,1335,1334,1,0,0,0,1335,1336,1,0,0,0,1336,1338,1,0,0,0, - 1337,1333,1,0,0,0,1337,1338,1,0,0,0,1338,1343,1,0,0,0,1339,1341,3,148, - 74,0,1340,1342,5,139,0,0,1341,1340,1,0,0,0,1341,1342,1,0,0,0,1342,1344, - 1,0,0,0,1343,1339,1,0,0,0,1343,1344,1,0,0,0,1344,1349,1,0,0,0,1345,1347, - 3,154,77,0,1346,1348,5,139,0,0,1347,1346,1,0,0,0,1347,1348,1,0,0,0,1348, - 1350,1,0,0,0,1349,1345,1,0,0,0,1349,1350,1,0,0,0,1350,1355,1,0,0,0,1351, - 1353,3,146,73,0,1352,1354,5,139,0,0,1353,1352,1,0,0,0,1353,1354,1,0,0, - 0,1354,1356,1,0,0,0,1355,1351,1,0,0,0,1355,1356,1,0,0,0,1356,1357,1,0, - 0,0,1357,1358,5,8,0,0,1358,145,1,0,0,0,1359,1361,5,9,0,0,1360,1362,5, - 139,0,0,1361,1360,1,0,0,0,1361,1362,1,0,0,0,1362,1396,1,0,0,0,1363,1365, - 3,250,125,0,1364,1366,5,139,0,0,1365,1364,1,0,0,0,1365,1366,1,0,0,0,1366, - 1367,1,0,0,0,1367,1369,5,6,0,0,1368,1370,5,139,0,0,1369,1368,1,0,0,0, - 1369,1370,1,0,0,0,1370,1371,1,0,0,0,1371,1373,3,164,82,0,1372,1374,5, - 139,0,0,1373,1372,1,0,0,0,1373,1374,1,0,0,0,1374,1393,1,0,0,0,1375,1377, - 5,4,0,0,1376,1378,5,139,0,0,1377,1376,1,0,0,0,1377,1378,1,0,0,0,1378, - 1379,1,0,0,0,1379,1381,3,250,125,0,1380,1382,5,139,0,0,1381,1380,1,0, - 0,0,1381,1382,1,0,0,0,1382,1383,1,0,0,0,1383,1385,5,6,0,0,1384,1386,5, - 139,0,0,1385,1384,1,0,0,0,1385,1386,1,0,0,0,1386,1387,1,0,0,0,1387,1389, - 3,164,82,0,1388,1390,5,139,0,0,1389,1388,1,0,0,0,1389,1390,1,0,0,0,1390, - 1392,1,0,0,0,1391,1375,1,0,0,0,1392,1395,1,0,0,0,1393,1391,1,0,0,0,1393, - 1394,1,0,0,0,1394,1397,1,0,0,0,1395,1393,1,0,0,0,1396,1363,1,0,0,0,1396, - 1397,1,0,0,0,1397,1398,1,0,0,0,1398,1399,5,10,0,0,1399,147,1,0,0,0,1400, - 1402,5,6,0,0,1401,1403,5,139,0,0,1402,1401,1,0,0,0,1402,1403,1,0,0,0, - 1403,1404,1,0,0,0,1404,1418,3,162,81,0,1405,1407,5,139,0,0,1406,1405, - 1,0,0,0,1406,1407,1,0,0,0,1407,1408,1,0,0,0,1408,1410,5,11,0,0,1409,1411, - 5,6,0,0,1410,1409,1,0,0,0,1410,1411,1,0,0,0,1411,1413,1,0,0,0,1412,1414, - 5,139,0,0,1413,1412,1,0,0,0,1413,1414,1,0,0,0,1414,1415,1,0,0,0,1415, - 1417,3,162,81,0,1416,1406,1,0,0,0,1417,1420,1,0,0,0,1418,1416,1,0,0,0, - 1418,1419,1,0,0,0,1419,149,1,0,0,0,1420,1418,1,0,0,0,1421,1428,3,152, - 76,0,1422,1424,5,139,0,0,1423,1422,1,0,0,0,1423,1424,1,0,0,0,1424,1425, - 1,0,0,0,1425,1427,3,152,76,0,1426,1423,1,0,0,0,1427,1430,1,0,0,0,1428, - 1426,1,0,0,0,1428,1429,1,0,0,0,1429,151,1,0,0,0,1430,1428,1,0,0,0,1431, - 1433,5,6,0,0,1432,1434,5,139,0,0,1433,1432,1,0,0,0,1433,1434,1,0,0,0, - 1434,1435,1,0,0,0,1435,1436,3,160,80,0,1436,153,1,0,0,0,1437,1439,5,93, - 0,0,1438,1440,5,139,0,0,1439,1438,1,0,0,0,1439,1440,1,0,0,0,1440,1445, - 1,0,0,0,1441,1446,5,104,0,0,1442,1443,5,80,0,0,1443,1444,5,139,0,0,1444, - 1446,5,104,0,0,1445,1441,1,0,0,0,1445,1442,1,0,0,0,1445,1446,1,0,0,0, - 1446,1448,1,0,0,0,1447,1449,5,139,0,0,1448,1447,1,0,0,0,1448,1449,1,0, - 0,0,1449,1464,1,0,0,0,1450,1452,3,156,78,0,1451,1450,1,0,0,0,1451,1452, - 1,0,0,0,1452,1454,1,0,0,0,1453,1455,5,139,0,0,1454,1453,1,0,0,0,1454, - 1455,1,0,0,0,1455,1456,1,0,0,0,1456,1458,5,12,0,0,1457,1459,5,139,0,0, - 1458,1457,1,0,0,0,1458,1459,1,0,0,0,1459,1461,1,0,0,0,1460,1462,3,158, - 79,0,1461,1460,1,0,0,0,1461,1462,1,0,0,0,1462,1465,1,0,0,0,1463,1465, - 3,252,126,0,1464,1451,1,0,0,0,1464,1463,1,0,0,0,1464,1465,1,0,0,0,1465, - 1495,1,0,0,0,1466,1468,5,139,0,0,1467,1466,1,0,0,0,1467,1468,1,0,0,0, - 1468,1469,1,0,0,0,1469,1471,5,2,0,0,1470,1472,5,139,0,0,1471,1470,1,0, - 0,0,1471,1472,1,0,0,0,1472,1473,1,0,0,0,1473,1475,3,242,121,0,1474,1476, - 5,139,0,0,1475,1474,1,0,0,0,1475,1476,1,0,0,0,1476,1477,1,0,0,0,1477, - 1479,5,4,0,0,1478,1480,5,139,0,0,1479,1478,1,0,0,0,1479,1480,1,0,0,0, - 1480,1481,1,0,0,0,1481,1483,5,13,0,0,1482,1484,5,139,0,0,1483,1482,1, - 0,0,0,1483,1484,1,0,0,0,1484,1485,1,0,0,0,1485,1487,5,11,0,0,1486,1488, + 0,0,1308,1309,1,0,0,0,1309,1310,3,266,133,0,1310,1340,1,0,0,0,1311,1313, + 3,266,133,0,1312,1314,5,139,0,0,1313,1312,1,0,0,0,1313,1314,1,0,0,0,1314, + 1316,1,0,0,0,1315,1317,3,144,72,0,1316,1315,1,0,0,0,1316,1317,1,0,0,0, + 1317,1319,1,0,0,0,1318,1320,5,139,0,0,1319,1318,1,0,0,0,1319,1320,1,0, + 0,0,1320,1321,1,0,0,0,1321,1323,3,266,133,0,1322,1324,5,139,0,0,1323, + 1322,1,0,0,0,1323,1324,1,0,0,0,1324,1325,1,0,0,0,1325,1326,3,264,132, + 0,1326,1340,1,0,0,0,1327,1329,3,266,133,0,1328,1330,5,139,0,0,1329,1328, + 1,0,0,0,1329,1330,1,0,0,0,1330,1332,1,0,0,0,1331,1333,3,144,72,0,1332, + 1331,1,0,0,0,1332,1333,1,0,0,0,1333,1335,1,0,0,0,1334,1336,5,139,0,0, + 1335,1334,1,0,0,0,1335,1336,1,0,0,0,1336,1337,1,0,0,0,1337,1338,3,266, + 133,0,1338,1340,1,0,0,0,1339,1295,1,0,0,0,1339,1311,1,0,0,0,1339,1327, + 1,0,0,0,1340,143,1,0,0,0,1341,1343,5,7,0,0,1342,1344,5,139,0,0,1343,1342, + 1,0,0,0,1343,1344,1,0,0,0,1344,1349,1,0,0,0,1345,1347,3,242,121,0,1346, + 1348,5,139,0,0,1347,1346,1,0,0,0,1347,1348,1,0,0,0,1348,1350,1,0,0,0, + 1349,1345,1,0,0,0,1349,1350,1,0,0,0,1350,1355,1,0,0,0,1351,1353,3,148, + 74,0,1352,1354,5,139,0,0,1353,1352,1,0,0,0,1353,1354,1,0,0,0,1354,1356, + 1,0,0,0,1355,1351,1,0,0,0,1355,1356,1,0,0,0,1356,1361,1,0,0,0,1357,1359, + 3,154,77,0,1358,1360,5,139,0,0,1359,1358,1,0,0,0,1359,1360,1,0,0,0,1360, + 1362,1,0,0,0,1361,1357,1,0,0,0,1361,1362,1,0,0,0,1362,1367,1,0,0,0,1363, + 1365,3,146,73,0,1364,1366,5,139,0,0,1365,1364,1,0,0,0,1365,1366,1,0,0, + 0,1366,1368,1,0,0,0,1367,1363,1,0,0,0,1367,1368,1,0,0,0,1368,1369,1,0, + 0,0,1369,1370,5,8,0,0,1370,145,1,0,0,0,1371,1373,5,9,0,0,1372,1374,5, + 139,0,0,1373,1372,1,0,0,0,1373,1374,1,0,0,0,1374,1408,1,0,0,0,1375,1377, + 3,250,125,0,1376,1378,5,139,0,0,1377,1376,1,0,0,0,1377,1378,1,0,0,0,1378, + 1379,1,0,0,0,1379,1381,5,6,0,0,1380,1382,5,139,0,0,1381,1380,1,0,0,0, + 1381,1382,1,0,0,0,1382,1383,1,0,0,0,1383,1385,3,164,82,0,1384,1386,5, + 139,0,0,1385,1384,1,0,0,0,1385,1386,1,0,0,0,1386,1405,1,0,0,0,1387,1389, + 5,4,0,0,1388,1390,5,139,0,0,1389,1388,1,0,0,0,1389,1390,1,0,0,0,1390, + 1391,1,0,0,0,1391,1393,3,250,125,0,1392,1394,5,139,0,0,1393,1392,1,0, + 0,0,1393,1394,1,0,0,0,1394,1395,1,0,0,0,1395,1397,5,6,0,0,1396,1398,5, + 139,0,0,1397,1396,1,0,0,0,1397,1398,1,0,0,0,1398,1399,1,0,0,0,1399,1401, + 3,164,82,0,1400,1402,5,139,0,0,1401,1400,1,0,0,0,1401,1402,1,0,0,0,1402, + 1404,1,0,0,0,1403,1387,1,0,0,0,1404,1407,1,0,0,0,1405,1403,1,0,0,0,1405, + 1406,1,0,0,0,1406,1409,1,0,0,0,1407,1405,1,0,0,0,1408,1375,1,0,0,0,1408, + 1409,1,0,0,0,1409,1410,1,0,0,0,1410,1411,5,10,0,0,1411,147,1,0,0,0,1412, + 1414,5,6,0,0,1413,1415,5,139,0,0,1414,1413,1,0,0,0,1414,1415,1,0,0,0, + 1415,1416,1,0,0,0,1416,1430,3,162,81,0,1417,1419,5,139,0,0,1418,1417, + 1,0,0,0,1418,1419,1,0,0,0,1419,1420,1,0,0,0,1420,1422,5,11,0,0,1421,1423, + 5,6,0,0,1422,1421,1,0,0,0,1422,1423,1,0,0,0,1423,1425,1,0,0,0,1424,1426, + 5,139,0,0,1425,1424,1,0,0,0,1425,1426,1,0,0,0,1426,1427,1,0,0,0,1427, + 1429,3,162,81,0,1428,1418,1,0,0,0,1429,1432,1,0,0,0,1430,1428,1,0,0,0, + 1430,1431,1,0,0,0,1431,149,1,0,0,0,1432,1430,1,0,0,0,1433,1440,3,152, + 76,0,1434,1436,5,139,0,0,1435,1434,1,0,0,0,1435,1436,1,0,0,0,1436,1437, + 1,0,0,0,1437,1439,3,152,76,0,1438,1435,1,0,0,0,1439,1442,1,0,0,0,1440, + 1438,1,0,0,0,1440,1441,1,0,0,0,1441,151,1,0,0,0,1442,1440,1,0,0,0,1443, + 1445,5,6,0,0,1444,1446,5,139,0,0,1445,1444,1,0,0,0,1445,1446,1,0,0,0, + 1446,1447,1,0,0,0,1447,1448,3,160,80,0,1448,153,1,0,0,0,1449,1451,5,93, + 0,0,1450,1452,5,139,0,0,1451,1450,1,0,0,0,1451,1452,1,0,0,0,1452,1457, + 1,0,0,0,1453,1458,5,104,0,0,1454,1455,5,80,0,0,1455,1456,5,139,0,0,1456, + 1458,5,104,0,0,1457,1453,1,0,0,0,1457,1454,1,0,0,0,1457,1458,1,0,0,0, + 1458,1460,1,0,0,0,1459,1461,5,139,0,0,1460,1459,1,0,0,0,1460,1461,1,0, + 0,0,1461,1476,1,0,0,0,1462,1464,3,156,78,0,1463,1462,1,0,0,0,1463,1464, + 1,0,0,0,1464,1466,1,0,0,0,1465,1467,5,139,0,0,1466,1465,1,0,0,0,1466, + 1467,1,0,0,0,1467,1468,1,0,0,0,1468,1470,5,12,0,0,1469,1471,5,139,0,0, + 1470,1469,1,0,0,0,1470,1471,1,0,0,0,1471,1473,1,0,0,0,1472,1474,3,158, + 79,0,1473,1472,1,0,0,0,1473,1474,1,0,0,0,1474,1477,1,0,0,0,1475,1477, + 3,252,126,0,1476,1463,1,0,0,0,1476,1475,1,0,0,0,1476,1477,1,0,0,0,1477, + 1507,1,0,0,0,1478,1480,5,139,0,0,1479,1478,1,0,0,0,1479,1480,1,0,0,0, + 1480,1481,1,0,0,0,1481,1483,5,2,0,0,1482,1484,5,139,0,0,1483,1482,1,0, + 0,0,1483,1484,1,0,0,0,1484,1485,1,0,0,0,1485,1487,3,242,121,0,1486,1488, 5,139,0,0,1487,1486,1,0,0,0,1487,1488,1,0,0,0,1488,1489,1,0,0,0,1489, - 1491,3,128,64,0,1490,1492,5,139,0,0,1491,1490,1,0,0,0,1491,1492,1,0,0, - 0,1492,1493,1,0,0,0,1493,1494,5,3,0,0,1494,1496,1,0,0,0,1495,1467,1,0, - 0,0,1495,1496,1,0,0,0,1496,155,1,0,0,0,1497,1498,5,127,0,0,1498,157,1, - 0,0,0,1499,1500,5,127,0,0,1500,159,1,0,0,0,1501,1502,3,256,128,0,1502, - 161,1,0,0,0,1503,1504,3,256,128,0,1504,163,1,0,0,0,1505,1506,3,166,83, - 0,1506,165,1,0,0,0,1507,1514,3,168,84,0,1508,1509,5,139,0,0,1509,1510, - 5,105,0,0,1510,1511,5,139,0,0,1511,1513,3,168,84,0,1512,1508,1,0,0,0, - 1513,1516,1,0,0,0,1514,1512,1,0,0,0,1514,1515,1,0,0,0,1515,167,1,0,0, - 0,1516,1514,1,0,0,0,1517,1524,3,170,85,0,1518,1519,5,139,0,0,1519,1520, - 5,106,0,0,1520,1521,5,139,0,0,1521,1523,3,170,85,0,1522,1518,1,0,0,0, - 1523,1526,1,0,0,0,1524,1522,1,0,0,0,1524,1525,1,0,0,0,1525,169,1,0,0, - 0,1526,1524,1,0,0,0,1527,1534,3,172,86,0,1528,1529,5,139,0,0,1529,1530, - 5,107,0,0,1530,1531,5,139,0,0,1531,1533,3,172,86,0,1532,1528,1,0,0,0, - 1533,1536,1,0,0,0,1534,1532,1,0,0,0,1534,1535,1,0,0,0,1535,171,1,0,0, - 0,1536,1534,1,0,0,0,1537,1539,5,108,0,0,1538,1540,5,139,0,0,1539,1538, - 1,0,0,0,1539,1540,1,0,0,0,1540,1542,1,0,0,0,1541,1537,1,0,0,0,1541,1542, - 1,0,0,0,1542,1543,1,0,0,0,1543,1544,3,174,87,0,1544,173,1,0,0,0,1545, - 1555,3,178,89,0,1546,1548,5,139,0,0,1547,1546,1,0,0,0,1547,1548,1,0,0, - 0,1548,1549,1,0,0,0,1549,1551,3,176,88,0,1550,1552,5,139,0,0,1551,1550, - 1,0,0,0,1551,1552,1,0,0,0,1552,1553,1,0,0,0,1553,1554,3,178,89,0,1554, - 1556,1,0,0,0,1555,1547,1,0,0,0,1555,1556,1,0,0,0,1556,1594,1,0,0,0,1557, - 1559,3,178,89,0,1558,1560,5,139,0,0,1559,1558,1,0,0,0,1559,1560,1,0,0, - 0,1560,1561,1,0,0,0,1561,1563,5,109,0,0,1562,1564,5,139,0,0,1563,1562, + 1491,5,4,0,0,1490,1492,5,139,0,0,1491,1490,1,0,0,0,1491,1492,1,0,0,0, + 1492,1493,1,0,0,0,1493,1495,5,13,0,0,1494,1496,5,139,0,0,1495,1494,1, + 0,0,0,1495,1496,1,0,0,0,1496,1497,1,0,0,0,1497,1499,5,11,0,0,1498,1500, + 5,139,0,0,1499,1498,1,0,0,0,1499,1500,1,0,0,0,1500,1501,1,0,0,0,1501, + 1503,3,128,64,0,1502,1504,5,139,0,0,1503,1502,1,0,0,0,1503,1504,1,0,0, + 0,1504,1505,1,0,0,0,1505,1506,5,3,0,0,1506,1508,1,0,0,0,1507,1479,1,0, + 0,0,1507,1508,1,0,0,0,1508,155,1,0,0,0,1509,1510,5,127,0,0,1510,157,1, + 0,0,0,1511,1512,5,127,0,0,1512,159,1,0,0,0,1513,1514,3,256,128,0,1514, + 161,1,0,0,0,1515,1516,3,256,128,0,1516,163,1,0,0,0,1517,1518,3,166,83, + 0,1518,165,1,0,0,0,1519,1526,3,168,84,0,1520,1521,5,139,0,0,1521,1522, + 5,105,0,0,1522,1523,5,139,0,0,1523,1525,3,168,84,0,1524,1520,1,0,0,0, + 1525,1528,1,0,0,0,1526,1524,1,0,0,0,1526,1527,1,0,0,0,1527,167,1,0,0, + 0,1528,1526,1,0,0,0,1529,1536,3,170,85,0,1530,1531,5,139,0,0,1531,1532, + 5,106,0,0,1532,1533,5,139,0,0,1533,1535,3,170,85,0,1534,1530,1,0,0,0, + 1535,1538,1,0,0,0,1536,1534,1,0,0,0,1536,1537,1,0,0,0,1537,169,1,0,0, + 0,1538,1536,1,0,0,0,1539,1546,3,172,86,0,1540,1541,5,139,0,0,1541,1542, + 5,107,0,0,1542,1543,5,139,0,0,1543,1545,3,172,86,0,1544,1540,1,0,0,0, + 1545,1548,1,0,0,0,1546,1544,1,0,0,0,1546,1547,1,0,0,0,1547,171,1,0,0, + 0,1548,1546,1,0,0,0,1549,1551,5,108,0,0,1550,1552,5,139,0,0,1551,1550, + 1,0,0,0,1551,1552,1,0,0,0,1552,1554,1,0,0,0,1553,1549,1,0,0,0,1553,1554, + 1,0,0,0,1554,1555,1,0,0,0,1555,1556,3,174,87,0,1556,173,1,0,0,0,1557, + 1567,3,178,89,0,1558,1560,5,139,0,0,1559,1558,1,0,0,0,1559,1560,1,0,0, + 0,1560,1561,1,0,0,0,1561,1563,3,176,88,0,1562,1564,5,139,0,0,1563,1562, 1,0,0,0,1563,1564,1,0,0,0,1564,1565,1,0,0,0,1565,1566,3,178,89,0,1566, - 1567,1,0,0,0,1567,1568,6,87,-1,0,1568,1594,1,0,0,0,1569,1571,3,178,89, - 0,1570,1572,5,139,0,0,1571,1570,1,0,0,0,1571,1572,1,0,0,0,1572,1573,1, - 0,0,0,1573,1575,3,176,88,0,1574,1576,5,139,0,0,1575,1574,1,0,0,0,1575, - 1576,1,0,0,0,1576,1577,1,0,0,0,1577,1587,3,178,89,0,1578,1580,5,139,0, - 0,1579,1578,1,0,0,0,1579,1580,1,0,0,0,1580,1581,1,0,0,0,1581,1583,3,176, - 88,0,1582,1584,5,139,0,0,1583,1582,1,0,0,0,1583,1584,1,0,0,0,1584,1585, - 1,0,0,0,1585,1586,3,178,89,0,1586,1588,1,0,0,0,1587,1579,1,0,0,0,1588, - 1589,1,0,0,0,1589,1587,1,0,0,0,1589,1590,1,0,0,0,1590,1591,1,0,0,0,1591, - 1592,6,87,-1,0,1592,1594,1,0,0,0,1593,1545,1,0,0,0,1593,1557,1,0,0,0, - 1593,1569,1,0,0,0,1594,175,1,0,0,0,1595,1596,7,1,0,0,1596,177,1,0,0,0, - 1597,1608,3,180,90,0,1598,1600,5,139,0,0,1599,1598,1,0,0,0,1599,1600, - 1,0,0,0,1600,1601,1,0,0,0,1601,1603,5,11,0,0,1602,1604,5,139,0,0,1603, - 1602,1,0,0,0,1603,1604,1,0,0,0,1604,1605,1,0,0,0,1605,1607,3,180,90,0, - 1606,1599,1,0,0,0,1607,1610,1,0,0,0,1608,1606,1,0,0,0,1608,1609,1,0,0, - 0,1609,179,1,0,0,0,1610,1608,1,0,0,0,1611,1622,3,182,91,0,1612,1614,5, - 139,0,0,1613,1612,1,0,0,0,1613,1614,1,0,0,0,1614,1615,1,0,0,0,1615,1617, - 5,19,0,0,1616,1618,5,139,0,0,1617,1616,1,0,0,0,1617,1618,1,0,0,0,1618, - 1619,1,0,0,0,1619,1621,3,182,91,0,1620,1613,1,0,0,0,1621,1624,1,0,0,0, - 1622,1620,1,0,0,0,1622,1623,1,0,0,0,1623,181,1,0,0,0,1624,1622,1,0,0, - 0,1625,1637,3,186,93,0,1626,1628,5,139,0,0,1627,1626,1,0,0,0,1627,1628, - 1,0,0,0,1628,1629,1,0,0,0,1629,1631,3,184,92,0,1630,1632,5,139,0,0,1631, - 1630,1,0,0,0,1631,1632,1,0,0,0,1632,1633,1,0,0,0,1633,1634,3,186,93,0, - 1634,1636,1,0,0,0,1635,1627,1,0,0,0,1636,1639,1,0,0,0,1637,1635,1,0,0, - 0,1637,1638,1,0,0,0,1638,183,1,0,0,0,1639,1637,1,0,0,0,1640,1641,7,2, - 0,0,1641,185,1,0,0,0,1642,1654,3,190,95,0,1643,1645,5,139,0,0,1644,1643, - 1,0,0,0,1644,1645,1,0,0,0,1645,1646,1,0,0,0,1646,1648,3,188,94,0,1647, - 1649,5,139,0,0,1648,1647,1,0,0,0,1648,1649,1,0,0,0,1649,1650,1,0,0,0, - 1650,1651,3,190,95,0,1651,1653,1,0,0,0,1652,1644,1,0,0,0,1653,1656,1, - 0,0,0,1654,1652,1,0,0,0,1654,1655,1,0,0,0,1655,187,1,0,0,0,1656,1654, - 1,0,0,0,1657,1658,7,3,0,0,1658,189,1,0,0,0,1659,1671,3,194,97,0,1660, - 1662,5,139,0,0,1661,1660,1,0,0,0,1661,1662,1,0,0,0,1662,1663,1,0,0,0, - 1663,1665,3,192,96,0,1664,1666,5,139,0,0,1665,1664,1,0,0,0,1665,1666, - 1,0,0,0,1666,1667,1,0,0,0,1667,1668,3,194,97,0,1668,1670,1,0,0,0,1669, - 1661,1,0,0,0,1670,1673,1,0,0,0,1671,1669,1,0,0,0,1671,1672,1,0,0,0,1672, - 191,1,0,0,0,1673,1671,1,0,0,0,1674,1675,7,4,0,0,1675,193,1,0,0,0,1676, - 1687,3,196,98,0,1677,1679,5,139,0,0,1678,1677,1,0,0,0,1678,1679,1,0,0, - 0,1679,1680,1,0,0,0,1680,1682,5,25,0,0,1681,1683,5,139,0,0,1682,1681, - 1,0,0,0,1682,1683,1,0,0,0,1683,1684,1,0,0,0,1684,1686,3,196,98,0,1685, - 1678,1,0,0,0,1686,1689,1,0,0,0,1687,1685,1,0,0,0,1687,1688,1,0,0,0,1688, - 195,1,0,0,0,1689,1687,1,0,0,0,1690,1692,5,110,0,0,1691,1693,5,139,0,0, - 1692,1691,1,0,0,0,1692,1693,1,0,0,0,1693,1695,1,0,0,0,1694,1690,1,0,0, - 0,1694,1695,1,0,0,0,1695,1696,1,0,0,0,1696,1701,3,198,99,0,1697,1699, - 5,139,0,0,1698,1697,1,0,0,0,1698,1699,1,0,0,0,1699,1700,1,0,0,0,1700, - 1702,5,111,0,0,1701,1698,1,0,0,0,1701,1702,1,0,0,0,1702,197,1,0,0,0,1703, - 1711,3,212,106,0,1704,1712,3,206,103,0,1705,1707,3,200,100,0,1706,1705, - 1,0,0,0,1707,1708,1,0,0,0,1708,1706,1,0,0,0,1708,1709,1,0,0,0,1709,1712, - 1,0,0,0,1710,1712,3,210,105,0,1711,1704,1,0,0,0,1711,1706,1,0,0,0,1711, - 1710,1,0,0,0,1711,1712,1,0,0,0,1712,199,1,0,0,0,1713,1716,3,202,101,0, - 1714,1716,3,204,102,0,1715,1713,1,0,0,0,1715,1714,1,0,0,0,1716,201,1, - 0,0,0,1717,1718,5,7,0,0,1718,1719,3,164,82,0,1719,1720,5,8,0,0,1720,203, - 1,0,0,0,1721,1723,5,7,0,0,1722,1724,3,164,82,0,1723,1722,1,0,0,0,1723, - 1724,1,0,0,0,1724,1725,1,0,0,0,1725,1727,5,6,0,0,1726,1728,3,164,82,0, - 1727,1726,1,0,0,0,1727,1728,1,0,0,0,1728,1729,1,0,0,0,1729,1730,5,8,0, - 0,1730,205,1,0,0,0,1731,1743,3,208,104,0,1732,1733,5,139,0,0,1733,1734, - 5,112,0,0,1734,1735,5,139,0,0,1735,1743,5,90,0,0,1736,1737,5,139,0,0, - 1737,1738,5,113,0,0,1738,1739,5,139,0,0,1739,1743,5,90,0,0,1740,1741, - 5,139,0,0,1741,1743,5,114,0,0,1742,1731,1,0,0,0,1742,1732,1,0,0,0,1742, - 1736,1,0,0,0,1742,1740,1,0,0,0,1743,1745,1,0,0,0,1744,1746,5,139,0,0, - 1745,1744,1,0,0,0,1745,1746,1,0,0,0,1746,1747,1,0,0,0,1747,1748,3,212, - 106,0,1748,207,1,0,0,0,1749,1751,5,139,0,0,1750,1749,1,0,0,0,1750,1751, - 1,0,0,0,1751,1752,1,0,0,0,1752,1753,5,26,0,0,1753,209,1,0,0,0,1754,1755, - 5,139,0,0,1755,1756,5,115,0,0,1756,1757,5,139,0,0,1757,1765,5,116,0,0, - 1758,1759,5,139,0,0,1759,1760,5,115,0,0,1760,1761,5,139,0,0,1761,1762, - 5,108,0,0,1762,1763,5,139,0,0,1763,1765,5,116,0,0,1764,1754,1,0,0,0,1764, - 1758,1,0,0,0,1765,211,1,0,0,0,1766,1773,3,214,107,0,1767,1769,5,139,0, - 0,1768,1767,1,0,0,0,1768,1769,1,0,0,0,1769,1770,1,0,0,0,1770,1772,3,236, - 118,0,1771,1768,1,0,0,0,1772,1775,1,0,0,0,1773,1771,1,0,0,0,1773,1774, - 1,0,0,0,1774,213,1,0,0,0,1775,1773,1,0,0,0,1776,1784,3,216,108,0,1777, - 1784,3,246,123,0,1778,1784,3,238,119,0,1779,1784,3,226,113,0,1780,1784, - 3,228,114,0,1781,1784,3,234,117,0,1782,1784,3,242,121,0,1783,1776,1,0, - 0,0,1783,1777,1,0,0,0,1783,1778,1,0,0,0,1783,1779,1,0,0,0,1783,1780,1, - 0,0,0,1783,1781,1,0,0,0,1783,1782,1,0,0,0,1784,215,1,0,0,0,1785,1792, - 3,244,122,0,1786,1792,5,125,0,0,1787,1792,3,218,109,0,1788,1792,5,116, - 0,0,1789,1792,3,220,110,0,1790,1792,3,222,111,0,1791,1785,1,0,0,0,1791, - 1786,1,0,0,0,1791,1787,1,0,0,0,1791,1788,1,0,0,0,1791,1789,1,0,0,0,1791, - 1790,1,0,0,0,1792,217,1,0,0,0,1793,1794,7,5,0,0,1794,219,1,0,0,0,1795, - 1797,5,7,0,0,1796,1798,5,139,0,0,1797,1796,1,0,0,0,1797,1798,1,0,0,0, - 1798,1816,1,0,0,0,1799,1801,3,164,82,0,1800,1802,5,139,0,0,1801,1800, - 1,0,0,0,1801,1802,1,0,0,0,1802,1813,1,0,0,0,1803,1805,5,4,0,0,1804,1806, - 5,139,0,0,1805,1804,1,0,0,0,1805,1806,1,0,0,0,1806,1807,1,0,0,0,1807, - 1809,3,164,82,0,1808,1810,5,139,0,0,1809,1808,1,0,0,0,1809,1810,1,0,0, - 0,1810,1812,1,0,0,0,1811,1803,1,0,0,0,1812,1815,1,0,0,0,1813,1811,1,0, - 0,0,1813,1814,1,0,0,0,1814,1817,1,0,0,0,1815,1813,1,0,0,0,1816,1799,1, - 0,0,0,1816,1817,1,0,0,0,1817,1818,1,0,0,0,1818,1819,5,8,0,0,1819,221, - 1,0,0,0,1820,1822,5,9,0,0,1821,1823,5,139,0,0,1822,1821,1,0,0,0,1822, - 1823,1,0,0,0,1823,1824,1,0,0,0,1824,1826,3,224,112,0,1825,1827,5,139, - 0,0,1826,1825,1,0,0,0,1826,1827,1,0,0,0,1827,1838,1,0,0,0,1828,1830,5, - 4,0,0,1829,1831,5,139,0,0,1830,1829,1,0,0,0,1830,1831,1,0,0,0,1831,1832, - 1,0,0,0,1832,1834,3,224,112,0,1833,1835,5,139,0,0,1834,1833,1,0,0,0,1834, - 1835,1,0,0,0,1835,1837,1,0,0,0,1836,1828,1,0,0,0,1837,1840,1,0,0,0,1838, - 1836,1,0,0,0,1838,1839,1,0,0,0,1839,1841,1,0,0,0,1840,1838,1,0,0,0,1841, - 1842,5,10,0,0,1842,223,1,0,0,0,1843,1846,3,258,129,0,1844,1846,5,125, - 0,0,1845,1843,1,0,0,0,1845,1844,1,0,0,0,1846,1848,1,0,0,0,1847,1849,5, - 139,0,0,1848,1847,1,0,0,0,1848,1849,1,0,0,0,1849,1850,1,0,0,0,1850,1852, - 5,6,0,0,1851,1853,5,139,0,0,1852,1851,1,0,0,0,1852,1853,1,0,0,0,1853, - 1854,1,0,0,0,1854,1855,3,164,82,0,1855,225,1,0,0,0,1856,1858,5,2,0,0, - 1857,1859,5,139,0,0,1858,1857,1,0,0,0,1858,1859,1,0,0,0,1859,1860,1,0, - 0,0,1860,1862,3,164,82,0,1861,1863,5,139,0,0,1862,1861,1,0,0,0,1862,1863, - 1,0,0,0,1863,1864,1,0,0,0,1864,1865,5,3,0,0,1865,227,1,0,0,0,1866,1868, - 3,230,115,0,1867,1869,5,139,0,0,1868,1867,1,0,0,0,1868,1869,1,0,0,0,1869, - 1870,1,0,0,0,1870,1872,5,2,0,0,1871,1873,5,139,0,0,1872,1871,1,0,0,0, - 1872,1873,1,0,0,0,1873,1874,1,0,0,0,1874,1876,5,93,0,0,1875,1877,5,139, - 0,0,1876,1875,1,0,0,0,1876,1877,1,0,0,0,1877,1878,1,0,0,0,1878,1879,5, - 3,0,0,1879,1916,1,0,0,0,1880,1882,3,230,115,0,1881,1883,5,139,0,0,1882, - 1881,1,0,0,0,1882,1883,1,0,0,0,1883,1884,1,0,0,0,1884,1886,5,2,0,0,1885, - 1887,5,139,0,0,1886,1885,1,0,0,0,1886,1887,1,0,0,0,1887,1892,1,0,0,0, - 1888,1890,5,92,0,0,1889,1891,5,139,0,0,1890,1889,1,0,0,0,1890,1891,1, - 0,0,0,1891,1893,1,0,0,0,1892,1888,1,0,0,0,1892,1893,1,0,0,0,1893,1911, - 1,0,0,0,1894,1896,3,232,116,0,1895,1897,5,139,0,0,1896,1895,1,0,0,0,1896, - 1897,1,0,0,0,1897,1908,1,0,0,0,1898,1900,5,4,0,0,1899,1901,5,139,0,0, - 1900,1899,1,0,0,0,1900,1901,1,0,0,0,1901,1902,1,0,0,0,1902,1904,3,232, - 116,0,1903,1905,5,139,0,0,1904,1903,1,0,0,0,1904,1905,1,0,0,0,1905,1907, - 1,0,0,0,1906,1898,1,0,0,0,1907,1910,1,0,0,0,1908,1906,1,0,0,0,1908,1909, - 1,0,0,0,1909,1912,1,0,0,0,1910,1908,1,0,0,0,1911,1894,1,0,0,0,1911,1912, - 1,0,0,0,1912,1913,1,0,0,0,1913,1914,5,3,0,0,1914,1916,1,0,0,0,1915,1866, - 1,0,0,0,1915,1880,1,0,0,0,1916,229,1,0,0,0,1917,1918,3,258,129,0,1918, - 231,1,0,0,0,1919,1921,3,258,129,0,1920,1922,5,139,0,0,1921,1920,1,0,0, - 0,1921,1922,1,0,0,0,1922,1923,1,0,0,0,1923,1924,5,6,0,0,1924,1926,5,5, - 0,0,1925,1927,5,139,0,0,1926,1925,1,0,0,0,1926,1927,1,0,0,0,1927,1929, - 1,0,0,0,1928,1919,1,0,0,0,1928,1929,1,0,0,0,1929,1930,1,0,0,0,1930,1931, - 3,164,82,0,1931,233,1,0,0,0,1932,1934,5,119,0,0,1933,1935,5,139,0,0,1934, - 1933,1,0,0,0,1934,1935,1,0,0,0,1935,1936,1,0,0,0,1936,1938,5,9,0,0,1937, - 1939,5,139,0,0,1938,1937,1,0,0,0,1938,1939,1,0,0,0,1939,1940,1,0,0,0, - 1940,1942,5,83,0,0,1941,1943,5,139,0,0,1942,1941,1,0,0,0,1942,1943,1, - 0,0,0,1943,1944,1,0,0,0,1944,1949,3,130,65,0,1945,1947,5,139,0,0,1946, - 1945,1,0,0,0,1946,1947,1,0,0,0,1947,1948,1,0,0,0,1948,1950,3,128,64,0, - 1949,1946,1,0,0,0,1949,1950,1,0,0,0,1950,1952,1,0,0,0,1951,1953,5,139, - 0,0,1952,1951,1,0,0,0,1952,1953,1,0,0,0,1953,1954,1,0,0,0,1954,1955,5, - 10,0,0,1955,235,1,0,0,0,1956,1958,5,27,0,0,1957,1959,5,139,0,0,1958,1957, - 1,0,0,0,1958,1959,1,0,0,0,1959,1962,1,0,0,0,1960,1963,3,250,125,0,1961, - 1963,5,93,0,0,1962,1960,1,0,0,0,1962,1961,1,0,0,0,1963,237,1,0,0,0,1964, - 1969,5,120,0,0,1965,1967,5,139,0,0,1966,1965,1,0,0,0,1966,1967,1,0,0, - 0,1967,1968,1,0,0,0,1968,1970,3,240,120,0,1969,1966,1,0,0,0,1970,1971, - 1,0,0,0,1971,1969,1,0,0,0,1971,1972,1,0,0,0,1972,1987,1,0,0,0,1973,1975, - 5,120,0,0,1974,1976,5,139,0,0,1975,1974,1,0,0,0,1975,1976,1,0,0,0,1976, - 1977,1,0,0,0,1977,1982,3,164,82,0,1978,1980,5,139,0,0,1979,1978,1,0,0, - 0,1979,1980,1,0,0,0,1980,1981,1,0,0,0,1981,1983,3,240,120,0,1982,1979, - 1,0,0,0,1983,1984,1,0,0,0,1984,1982,1,0,0,0,1984,1985,1,0,0,0,1985,1987, - 1,0,0,0,1986,1964,1,0,0,0,1986,1973,1,0,0,0,1987,1996,1,0,0,0,1988,1990, - 5,139,0,0,1989,1988,1,0,0,0,1989,1990,1,0,0,0,1990,1991,1,0,0,0,1991, - 1993,5,121,0,0,1992,1994,5,139,0,0,1993,1992,1,0,0,0,1993,1994,1,0,0, - 0,1994,1995,1,0,0,0,1995,1997,3,164,82,0,1996,1989,1,0,0,0,1996,1997, - 1,0,0,0,1997,1999,1,0,0,0,1998,2000,5,139,0,0,1999,1998,1,0,0,0,1999, - 2000,1,0,0,0,2000,2001,1,0,0,0,2001,2002,5,122,0,0,2002,239,1,0,0,0,2003, - 2005,5,123,0,0,2004,2006,5,139,0,0,2005,2004,1,0,0,0,2005,2006,1,0,0, - 0,2006,2007,1,0,0,0,2007,2009,3,164,82,0,2008,2010,5,139,0,0,2009,2008, - 1,0,0,0,2009,2010,1,0,0,0,2010,2011,1,0,0,0,2011,2013,5,124,0,0,2012, - 2014,5,139,0,0,2013,2012,1,0,0,0,2013,2014,1,0,0,0,2014,2015,1,0,0,0, - 2015,2016,3,164,82,0,2016,241,1,0,0,0,2017,2018,3,258,129,0,2018,243, - 1,0,0,0,2019,2022,3,254,127,0,2020,2022,3,252,126,0,2021,2019,1,0,0,0, - 2021,2020,1,0,0,0,2022,245,1,0,0,0,2023,2026,5,28,0,0,2024,2027,3,258, - 129,0,2025,2027,5,127,0,0,2026,2024,1,0,0,0,2026,2025,1,0,0,0,2027,247, - 1,0,0,0,2028,2030,3,214,107,0,2029,2031,5,139,0,0,2030,2029,1,0,0,0,2030, - 2031,1,0,0,0,2031,2032,1,0,0,0,2032,2033,3,236,118,0,2033,249,1,0,0,0, - 2034,2035,3,256,128,0,2035,251,1,0,0,0,2036,2037,5,127,0,0,2037,253,1, - 0,0,0,2038,2039,5,134,0,0,2039,255,1,0,0,0,2040,2041,3,258,129,0,2041, - 257,1,0,0,0,2042,2048,5,135,0,0,2043,2044,5,138,0,0,2044,2048,6,129,-1, - 0,2045,2048,5,128,0,0,2046,2048,3,260,130,0,2047,2042,1,0,0,0,2047,2043, - 1,0,0,0,2047,2045,1,0,0,0,2047,2046,1,0,0,0,2048,259,1,0,0,0,2049,2050, - 5,49,0,0,2050,261,1,0,0,0,2051,2052,7,6,0,0,2052,263,1,0,0,0,2053,2054, - 7,7,0,0,2054,265,1,0,0,0,2055,2056,7,8,0,0,2056,267,1,0,0,0,347,269,272, - 275,279,282,285,298,308,312,316,320,330,334,338,343,366,370,392,396,399, - 402,405,408,412,417,421,431,435,440,445,450,456,460,464,469,476,480,484, - 487,491,495,500,505,509,519,529,533,537,541,546,558,562,566,570,574,576, - 580,584,586,600,604,608,612,617,620,624,628,630,634,638,640,678,689,711, - 715,720,731,735,739,749,753,757,763,767,771,777,781,785,789,793,797,803, - 808,814,834,840,845,850,854,859,865,870,873,877,881,885,891,895,900,905, - 909,912,916,920,924,928,932,938,942,947,951,960,966,974,978,982,986,992, - 998,1005,1009,1013,1016,1020,1030,1036,1043,1056,1060,1064,1068,1073, - 1078,1082,1088,1092,1096,1101,1107,1110,1116,1119,1125,1129,1133,1137, - 1141,1146,1151,1155,1160,1163,1172,1181,1186,1199,1202,1210,1214,1219, - 1224,1228,1233,1239,1244,1251,1255,1259,1261,1265,1267,1271,1273,1279, - 1285,1289,1292,1295,1301,1304,1307,1311,1317,1320,1323,1327,1331,1335, - 1337,1341,1343,1347,1349,1353,1355,1361,1365,1369,1373,1377,1381,1385, - 1389,1393,1396,1402,1406,1410,1413,1418,1423,1428,1433,1439,1445,1448, - 1451,1454,1458,1461,1464,1467,1471,1475,1479,1483,1487,1491,1495,1514, - 1524,1534,1539,1541,1547,1551,1555,1559,1563,1571,1575,1579,1583,1589, - 1593,1599,1603,1608,1613,1617,1622,1627,1631,1637,1644,1648,1654,1661, - 1665,1671,1678,1682,1687,1692,1694,1698,1701,1708,1711,1715,1723,1727, - 1742,1745,1750,1764,1768,1773,1783,1791,1797,1801,1805,1809,1813,1816, - 1822,1826,1830,1834,1838,1845,1848,1852,1858,1862,1868,1872,1876,1882, - 1886,1890,1892,1896,1900,1904,1908,1911,1915,1921,1926,1928,1934,1938, - 1942,1946,1949,1952,1958,1962,1966,1971,1975,1979,1984,1986,1989,1993, - 1996,1999,2005,2009,2013,2021,2026,2030,2047 + 1568,1,0,0,0,1567,1559,1,0,0,0,1567,1568,1,0,0,0,1568,1606,1,0,0,0,1569, + 1571,3,178,89,0,1570,1572,5,139,0,0,1571,1570,1,0,0,0,1571,1572,1,0,0, + 0,1572,1573,1,0,0,0,1573,1575,5,109,0,0,1574,1576,5,139,0,0,1575,1574, + 1,0,0,0,1575,1576,1,0,0,0,1576,1577,1,0,0,0,1577,1578,3,178,89,0,1578, + 1579,1,0,0,0,1579,1580,6,87,-1,0,1580,1606,1,0,0,0,1581,1583,3,178,89, + 0,1582,1584,5,139,0,0,1583,1582,1,0,0,0,1583,1584,1,0,0,0,1584,1585,1, + 0,0,0,1585,1587,3,176,88,0,1586,1588,5,139,0,0,1587,1586,1,0,0,0,1587, + 1588,1,0,0,0,1588,1589,1,0,0,0,1589,1599,3,178,89,0,1590,1592,5,139,0, + 0,1591,1590,1,0,0,0,1591,1592,1,0,0,0,1592,1593,1,0,0,0,1593,1595,3,176, + 88,0,1594,1596,5,139,0,0,1595,1594,1,0,0,0,1595,1596,1,0,0,0,1596,1597, + 1,0,0,0,1597,1598,3,178,89,0,1598,1600,1,0,0,0,1599,1591,1,0,0,0,1600, + 1601,1,0,0,0,1601,1599,1,0,0,0,1601,1602,1,0,0,0,1602,1603,1,0,0,0,1603, + 1604,6,87,-1,0,1604,1606,1,0,0,0,1605,1557,1,0,0,0,1605,1569,1,0,0,0, + 1605,1581,1,0,0,0,1606,175,1,0,0,0,1607,1608,7,1,0,0,1608,177,1,0,0,0, + 1609,1620,3,180,90,0,1610,1612,5,139,0,0,1611,1610,1,0,0,0,1611,1612, + 1,0,0,0,1612,1613,1,0,0,0,1613,1615,5,11,0,0,1614,1616,5,139,0,0,1615, + 1614,1,0,0,0,1615,1616,1,0,0,0,1616,1617,1,0,0,0,1617,1619,3,180,90,0, + 1618,1611,1,0,0,0,1619,1622,1,0,0,0,1620,1618,1,0,0,0,1620,1621,1,0,0, + 0,1621,179,1,0,0,0,1622,1620,1,0,0,0,1623,1634,3,182,91,0,1624,1626,5, + 139,0,0,1625,1624,1,0,0,0,1625,1626,1,0,0,0,1626,1627,1,0,0,0,1627,1629, + 5,19,0,0,1628,1630,5,139,0,0,1629,1628,1,0,0,0,1629,1630,1,0,0,0,1630, + 1631,1,0,0,0,1631,1633,3,182,91,0,1632,1625,1,0,0,0,1633,1636,1,0,0,0, + 1634,1632,1,0,0,0,1634,1635,1,0,0,0,1635,181,1,0,0,0,1636,1634,1,0,0, + 0,1637,1649,3,186,93,0,1638,1640,5,139,0,0,1639,1638,1,0,0,0,1639,1640, + 1,0,0,0,1640,1641,1,0,0,0,1641,1643,3,184,92,0,1642,1644,5,139,0,0,1643, + 1642,1,0,0,0,1643,1644,1,0,0,0,1644,1645,1,0,0,0,1645,1646,3,186,93,0, + 1646,1648,1,0,0,0,1647,1639,1,0,0,0,1648,1651,1,0,0,0,1649,1647,1,0,0, + 0,1649,1650,1,0,0,0,1650,183,1,0,0,0,1651,1649,1,0,0,0,1652,1653,7,2, + 0,0,1653,185,1,0,0,0,1654,1666,3,190,95,0,1655,1657,5,139,0,0,1656,1655, + 1,0,0,0,1656,1657,1,0,0,0,1657,1658,1,0,0,0,1658,1660,3,188,94,0,1659, + 1661,5,139,0,0,1660,1659,1,0,0,0,1660,1661,1,0,0,0,1661,1662,1,0,0,0, + 1662,1663,3,190,95,0,1663,1665,1,0,0,0,1664,1656,1,0,0,0,1665,1668,1, + 0,0,0,1666,1664,1,0,0,0,1666,1667,1,0,0,0,1667,187,1,0,0,0,1668,1666, + 1,0,0,0,1669,1670,7,3,0,0,1670,189,1,0,0,0,1671,1683,3,194,97,0,1672, + 1674,5,139,0,0,1673,1672,1,0,0,0,1673,1674,1,0,0,0,1674,1675,1,0,0,0, + 1675,1677,3,192,96,0,1676,1678,5,139,0,0,1677,1676,1,0,0,0,1677,1678, + 1,0,0,0,1678,1679,1,0,0,0,1679,1680,3,194,97,0,1680,1682,1,0,0,0,1681, + 1673,1,0,0,0,1682,1685,1,0,0,0,1683,1681,1,0,0,0,1683,1684,1,0,0,0,1684, + 191,1,0,0,0,1685,1683,1,0,0,0,1686,1687,7,4,0,0,1687,193,1,0,0,0,1688, + 1699,3,196,98,0,1689,1691,5,139,0,0,1690,1689,1,0,0,0,1690,1691,1,0,0, + 0,1691,1692,1,0,0,0,1692,1694,5,25,0,0,1693,1695,5,139,0,0,1694,1693, + 1,0,0,0,1694,1695,1,0,0,0,1695,1696,1,0,0,0,1696,1698,3,196,98,0,1697, + 1690,1,0,0,0,1698,1701,1,0,0,0,1699,1697,1,0,0,0,1699,1700,1,0,0,0,1700, + 195,1,0,0,0,1701,1699,1,0,0,0,1702,1704,5,110,0,0,1703,1705,5,139,0,0, + 1704,1703,1,0,0,0,1704,1705,1,0,0,0,1705,1707,1,0,0,0,1706,1702,1,0,0, + 0,1706,1707,1,0,0,0,1707,1708,1,0,0,0,1708,1713,3,198,99,0,1709,1711, + 5,139,0,0,1710,1709,1,0,0,0,1710,1711,1,0,0,0,1711,1712,1,0,0,0,1712, + 1714,5,111,0,0,1713,1710,1,0,0,0,1713,1714,1,0,0,0,1714,197,1,0,0,0,1715, + 1723,3,212,106,0,1716,1724,3,206,103,0,1717,1719,3,200,100,0,1718,1717, + 1,0,0,0,1719,1720,1,0,0,0,1720,1718,1,0,0,0,1720,1721,1,0,0,0,1721,1724, + 1,0,0,0,1722,1724,3,210,105,0,1723,1716,1,0,0,0,1723,1718,1,0,0,0,1723, + 1722,1,0,0,0,1723,1724,1,0,0,0,1724,199,1,0,0,0,1725,1728,3,202,101,0, + 1726,1728,3,204,102,0,1727,1725,1,0,0,0,1727,1726,1,0,0,0,1728,201,1, + 0,0,0,1729,1730,5,7,0,0,1730,1731,3,164,82,0,1731,1732,5,8,0,0,1732,203, + 1,0,0,0,1733,1735,5,7,0,0,1734,1736,3,164,82,0,1735,1734,1,0,0,0,1735, + 1736,1,0,0,0,1736,1737,1,0,0,0,1737,1739,5,6,0,0,1738,1740,3,164,82,0, + 1739,1738,1,0,0,0,1739,1740,1,0,0,0,1740,1741,1,0,0,0,1741,1742,5,8,0, + 0,1742,205,1,0,0,0,1743,1755,3,208,104,0,1744,1745,5,139,0,0,1745,1746, + 5,112,0,0,1746,1747,5,139,0,0,1747,1755,5,90,0,0,1748,1749,5,139,0,0, + 1749,1750,5,113,0,0,1750,1751,5,139,0,0,1751,1755,5,90,0,0,1752,1753, + 5,139,0,0,1753,1755,5,114,0,0,1754,1743,1,0,0,0,1754,1744,1,0,0,0,1754, + 1748,1,0,0,0,1754,1752,1,0,0,0,1755,1757,1,0,0,0,1756,1758,5,139,0,0, + 1757,1756,1,0,0,0,1757,1758,1,0,0,0,1758,1759,1,0,0,0,1759,1760,3,212, + 106,0,1760,207,1,0,0,0,1761,1763,5,139,0,0,1762,1761,1,0,0,0,1762,1763, + 1,0,0,0,1763,1764,1,0,0,0,1764,1765,5,26,0,0,1765,209,1,0,0,0,1766,1767, + 5,139,0,0,1767,1768,5,115,0,0,1768,1769,5,139,0,0,1769,1777,5,116,0,0, + 1770,1771,5,139,0,0,1771,1772,5,115,0,0,1772,1773,5,139,0,0,1773,1774, + 5,108,0,0,1774,1775,5,139,0,0,1775,1777,5,116,0,0,1776,1766,1,0,0,0,1776, + 1770,1,0,0,0,1777,211,1,0,0,0,1778,1785,3,214,107,0,1779,1781,5,139,0, + 0,1780,1779,1,0,0,0,1780,1781,1,0,0,0,1781,1782,1,0,0,0,1782,1784,3,236, + 118,0,1783,1780,1,0,0,0,1784,1787,1,0,0,0,1785,1783,1,0,0,0,1785,1786, + 1,0,0,0,1786,213,1,0,0,0,1787,1785,1,0,0,0,1788,1796,3,216,108,0,1789, + 1796,3,246,123,0,1790,1796,3,238,119,0,1791,1796,3,226,113,0,1792,1796, + 3,228,114,0,1793,1796,3,234,117,0,1794,1796,3,242,121,0,1795,1788,1,0, + 0,0,1795,1789,1,0,0,0,1795,1790,1,0,0,0,1795,1791,1,0,0,0,1795,1792,1, + 0,0,0,1795,1793,1,0,0,0,1795,1794,1,0,0,0,1796,215,1,0,0,0,1797,1804, + 3,244,122,0,1798,1804,5,125,0,0,1799,1804,3,218,109,0,1800,1804,5,116, + 0,0,1801,1804,3,220,110,0,1802,1804,3,222,111,0,1803,1797,1,0,0,0,1803, + 1798,1,0,0,0,1803,1799,1,0,0,0,1803,1800,1,0,0,0,1803,1801,1,0,0,0,1803, + 1802,1,0,0,0,1804,217,1,0,0,0,1805,1806,7,5,0,0,1806,219,1,0,0,0,1807, + 1809,5,7,0,0,1808,1810,5,139,0,0,1809,1808,1,0,0,0,1809,1810,1,0,0,0, + 1810,1828,1,0,0,0,1811,1813,3,164,82,0,1812,1814,5,139,0,0,1813,1812, + 1,0,0,0,1813,1814,1,0,0,0,1814,1825,1,0,0,0,1815,1817,5,4,0,0,1816,1818, + 5,139,0,0,1817,1816,1,0,0,0,1817,1818,1,0,0,0,1818,1819,1,0,0,0,1819, + 1821,3,164,82,0,1820,1822,5,139,0,0,1821,1820,1,0,0,0,1821,1822,1,0,0, + 0,1822,1824,1,0,0,0,1823,1815,1,0,0,0,1824,1827,1,0,0,0,1825,1823,1,0, + 0,0,1825,1826,1,0,0,0,1826,1829,1,0,0,0,1827,1825,1,0,0,0,1828,1811,1, + 0,0,0,1828,1829,1,0,0,0,1829,1830,1,0,0,0,1830,1831,5,8,0,0,1831,221, + 1,0,0,0,1832,1834,5,9,0,0,1833,1835,5,139,0,0,1834,1833,1,0,0,0,1834, + 1835,1,0,0,0,1835,1836,1,0,0,0,1836,1838,3,224,112,0,1837,1839,5,139, + 0,0,1838,1837,1,0,0,0,1838,1839,1,0,0,0,1839,1850,1,0,0,0,1840,1842,5, + 4,0,0,1841,1843,5,139,0,0,1842,1841,1,0,0,0,1842,1843,1,0,0,0,1843,1844, + 1,0,0,0,1844,1846,3,224,112,0,1845,1847,5,139,0,0,1846,1845,1,0,0,0,1846, + 1847,1,0,0,0,1847,1849,1,0,0,0,1848,1840,1,0,0,0,1849,1852,1,0,0,0,1850, + 1848,1,0,0,0,1850,1851,1,0,0,0,1851,1853,1,0,0,0,1852,1850,1,0,0,0,1853, + 1854,5,10,0,0,1854,223,1,0,0,0,1855,1858,3,258,129,0,1856,1858,5,125, + 0,0,1857,1855,1,0,0,0,1857,1856,1,0,0,0,1858,1860,1,0,0,0,1859,1861,5, + 139,0,0,1860,1859,1,0,0,0,1860,1861,1,0,0,0,1861,1862,1,0,0,0,1862,1864, + 5,6,0,0,1863,1865,5,139,0,0,1864,1863,1,0,0,0,1864,1865,1,0,0,0,1865, + 1866,1,0,0,0,1866,1867,3,164,82,0,1867,225,1,0,0,0,1868,1870,5,2,0,0, + 1869,1871,5,139,0,0,1870,1869,1,0,0,0,1870,1871,1,0,0,0,1871,1872,1,0, + 0,0,1872,1874,3,164,82,0,1873,1875,5,139,0,0,1874,1873,1,0,0,0,1874,1875, + 1,0,0,0,1875,1876,1,0,0,0,1876,1877,5,3,0,0,1877,227,1,0,0,0,1878,1880, + 3,230,115,0,1879,1881,5,139,0,0,1880,1879,1,0,0,0,1880,1881,1,0,0,0,1881, + 1882,1,0,0,0,1882,1884,5,2,0,0,1883,1885,5,139,0,0,1884,1883,1,0,0,0, + 1884,1885,1,0,0,0,1885,1886,1,0,0,0,1886,1888,5,93,0,0,1887,1889,5,139, + 0,0,1888,1887,1,0,0,0,1888,1889,1,0,0,0,1889,1890,1,0,0,0,1890,1891,5, + 3,0,0,1891,1928,1,0,0,0,1892,1894,3,230,115,0,1893,1895,5,139,0,0,1894, + 1893,1,0,0,0,1894,1895,1,0,0,0,1895,1896,1,0,0,0,1896,1898,5,2,0,0,1897, + 1899,5,139,0,0,1898,1897,1,0,0,0,1898,1899,1,0,0,0,1899,1904,1,0,0,0, + 1900,1902,5,92,0,0,1901,1903,5,139,0,0,1902,1901,1,0,0,0,1902,1903,1, + 0,0,0,1903,1905,1,0,0,0,1904,1900,1,0,0,0,1904,1905,1,0,0,0,1905,1923, + 1,0,0,0,1906,1908,3,232,116,0,1907,1909,5,139,0,0,1908,1907,1,0,0,0,1908, + 1909,1,0,0,0,1909,1920,1,0,0,0,1910,1912,5,4,0,0,1911,1913,5,139,0,0, + 1912,1911,1,0,0,0,1912,1913,1,0,0,0,1913,1914,1,0,0,0,1914,1916,3,232, + 116,0,1915,1917,5,139,0,0,1916,1915,1,0,0,0,1916,1917,1,0,0,0,1917,1919, + 1,0,0,0,1918,1910,1,0,0,0,1919,1922,1,0,0,0,1920,1918,1,0,0,0,1920,1921, + 1,0,0,0,1921,1924,1,0,0,0,1922,1920,1,0,0,0,1923,1906,1,0,0,0,1923,1924, + 1,0,0,0,1924,1925,1,0,0,0,1925,1926,5,3,0,0,1926,1928,1,0,0,0,1927,1878, + 1,0,0,0,1927,1892,1,0,0,0,1928,229,1,0,0,0,1929,1930,3,258,129,0,1930, + 231,1,0,0,0,1931,1933,3,258,129,0,1932,1934,5,139,0,0,1933,1932,1,0,0, + 0,1933,1934,1,0,0,0,1934,1935,1,0,0,0,1935,1936,5,6,0,0,1936,1938,5,5, + 0,0,1937,1939,5,139,0,0,1938,1937,1,0,0,0,1938,1939,1,0,0,0,1939,1941, + 1,0,0,0,1940,1931,1,0,0,0,1940,1941,1,0,0,0,1941,1942,1,0,0,0,1942,1943, + 3,164,82,0,1943,233,1,0,0,0,1944,1946,5,119,0,0,1945,1947,5,139,0,0,1946, + 1945,1,0,0,0,1946,1947,1,0,0,0,1947,1948,1,0,0,0,1948,1950,5,9,0,0,1949, + 1951,5,139,0,0,1950,1949,1,0,0,0,1950,1951,1,0,0,0,1951,1952,1,0,0,0, + 1952,1954,5,83,0,0,1953,1955,5,139,0,0,1954,1953,1,0,0,0,1954,1955,1, + 0,0,0,1955,1956,1,0,0,0,1956,1961,3,130,65,0,1957,1959,5,139,0,0,1958, + 1957,1,0,0,0,1958,1959,1,0,0,0,1959,1960,1,0,0,0,1960,1962,3,128,64,0, + 1961,1958,1,0,0,0,1961,1962,1,0,0,0,1962,1964,1,0,0,0,1963,1965,5,139, + 0,0,1964,1963,1,0,0,0,1964,1965,1,0,0,0,1965,1966,1,0,0,0,1966,1967,5, + 10,0,0,1967,235,1,0,0,0,1968,1970,5,27,0,0,1969,1971,5,139,0,0,1970,1969, + 1,0,0,0,1970,1971,1,0,0,0,1971,1974,1,0,0,0,1972,1975,3,250,125,0,1973, + 1975,5,93,0,0,1974,1972,1,0,0,0,1974,1973,1,0,0,0,1975,237,1,0,0,0,1976, + 1981,5,120,0,0,1977,1979,5,139,0,0,1978,1977,1,0,0,0,1978,1979,1,0,0, + 0,1979,1980,1,0,0,0,1980,1982,3,240,120,0,1981,1978,1,0,0,0,1982,1983, + 1,0,0,0,1983,1981,1,0,0,0,1983,1984,1,0,0,0,1984,1999,1,0,0,0,1985,1987, + 5,120,0,0,1986,1988,5,139,0,0,1987,1986,1,0,0,0,1987,1988,1,0,0,0,1988, + 1989,1,0,0,0,1989,1994,3,164,82,0,1990,1992,5,139,0,0,1991,1990,1,0,0, + 0,1991,1992,1,0,0,0,1992,1993,1,0,0,0,1993,1995,3,240,120,0,1994,1991, + 1,0,0,0,1995,1996,1,0,0,0,1996,1994,1,0,0,0,1996,1997,1,0,0,0,1997,1999, + 1,0,0,0,1998,1976,1,0,0,0,1998,1985,1,0,0,0,1999,2008,1,0,0,0,2000,2002, + 5,139,0,0,2001,2000,1,0,0,0,2001,2002,1,0,0,0,2002,2003,1,0,0,0,2003, + 2005,5,121,0,0,2004,2006,5,139,0,0,2005,2004,1,0,0,0,2005,2006,1,0,0, + 0,2006,2007,1,0,0,0,2007,2009,3,164,82,0,2008,2001,1,0,0,0,2008,2009, + 1,0,0,0,2009,2011,1,0,0,0,2010,2012,5,139,0,0,2011,2010,1,0,0,0,2011, + 2012,1,0,0,0,2012,2013,1,0,0,0,2013,2014,5,122,0,0,2014,239,1,0,0,0,2015, + 2017,5,123,0,0,2016,2018,5,139,0,0,2017,2016,1,0,0,0,2017,2018,1,0,0, + 0,2018,2019,1,0,0,0,2019,2021,3,164,82,0,2020,2022,5,139,0,0,2021,2020, + 1,0,0,0,2021,2022,1,0,0,0,2022,2023,1,0,0,0,2023,2025,5,124,0,0,2024, + 2026,5,139,0,0,2025,2024,1,0,0,0,2025,2026,1,0,0,0,2026,2027,1,0,0,0, + 2027,2028,3,164,82,0,2028,241,1,0,0,0,2029,2030,3,258,129,0,2030,243, + 1,0,0,0,2031,2034,3,254,127,0,2032,2034,3,252,126,0,2033,2031,1,0,0,0, + 2033,2032,1,0,0,0,2034,245,1,0,0,0,2035,2038,5,28,0,0,2036,2039,3,258, + 129,0,2037,2039,5,127,0,0,2038,2036,1,0,0,0,2038,2037,1,0,0,0,2039,247, + 1,0,0,0,2040,2042,3,214,107,0,2041,2043,5,139,0,0,2042,2041,1,0,0,0,2042, + 2043,1,0,0,0,2043,2044,1,0,0,0,2044,2045,3,236,118,0,2045,249,1,0,0,0, + 2046,2047,3,256,128,0,2047,251,1,0,0,0,2048,2049,5,127,0,0,2049,253,1, + 0,0,0,2050,2051,5,134,0,0,2051,255,1,0,0,0,2052,2053,3,258,129,0,2053, + 257,1,0,0,0,2054,2060,5,135,0,0,2055,2056,5,138,0,0,2056,2060,6,129,-1, + 0,2057,2060,5,128,0,0,2058,2060,3,260,130,0,2059,2054,1,0,0,0,2059,2055, + 1,0,0,0,2059,2057,1,0,0,0,2059,2058,1,0,0,0,2060,259,1,0,0,0,2061,2062, + 5,49,0,0,2062,261,1,0,0,0,2063,2064,7,6,0,0,2064,263,1,0,0,0,2065,2066, + 7,7,0,0,2066,265,1,0,0,0,2067,2068,7,8,0,0,2068,267,1,0,0,0,351,269,272, + 275,279,282,285,298,308,312,316,320,330,334,338,343,356,360,372,376,398, + 402,405,408,411,414,418,423,427,437,441,446,451,456,462,466,470,475,482, + 486,490,493,497,501,506,511,515,525,535,539,543,547,552,564,568,572,576, + 580,582,586,590,592,606,610,614,618,623,626,630,634,636,640,644,646,684, + 695,717,721,726,737,741,745,755,759,763,769,773,777,783,787,791,795,799, + 803,809,814,820,840,846,851,856,860,865,871,876,879,883,887,891,897,901, + 906,911,915,918,922,926,930,934,938,944,948,953,957,966,972,980,984,988, + 992,995,998,1004,1010,1017,1021,1025,1028,1032,1042,1048,1055,1068,1072, + 1076,1080,1085,1090,1094,1100,1104,1108,1113,1119,1122,1128,1131,1137, + 1141,1145,1149,1153,1158,1163,1167,1172,1175,1184,1193,1198,1211,1214, + 1222,1226,1231,1236,1240,1245,1251,1256,1263,1267,1271,1273,1277,1279, + 1283,1285,1291,1297,1301,1304,1307,1313,1316,1319,1323,1329,1332,1335, + 1339,1343,1347,1349,1353,1355,1359,1361,1365,1367,1373,1377,1381,1385, + 1389,1393,1397,1401,1405,1408,1414,1418,1422,1425,1430,1435,1440,1445, + 1451,1457,1460,1463,1466,1470,1473,1476,1479,1483,1487,1491,1495,1499, + 1503,1507,1526,1536,1546,1551,1553,1559,1563,1567,1571,1575,1583,1587, + 1591,1595,1601,1605,1611,1615,1620,1625,1629,1634,1639,1643,1649,1656, + 1660,1666,1673,1677,1683,1690,1694,1699,1704,1706,1710,1713,1720,1723, + 1727,1735,1739,1754,1757,1762,1776,1780,1785,1795,1803,1809,1813,1817, + 1821,1825,1828,1834,1838,1842,1846,1850,1857,1860,1864,1870,1874,1880, + 1884,1888,1894,1898,1902,1904,1908,1912,1916,1920,1923,1927,1933,1938, + 1940,1946,1950,1954,1958,1961,1964,1970,1974,1978,1983,1987,1991,1996, + 1998,2001,2005,2008,2011,2017,2021,2025,2033,2038,2042,2059 }; staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); @@ -1524,6 +1529,7 @@ size_t CypherParser::KU_CopyTOContext::getRuleIndex() const { CypherParser::KU_CopyTOContext* CypherParser::kU_CopyTO() { KU_CopyTOContext *_localctx = _tracker.createInstance(_ctx, getState()); enterRule(_localctx, 8, CypherParser::RuleKU_CopyTO); + size_t _la = 0; #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -1540,17 +1546,33 @@ CypherParser::KU_CopyTOContext* CypherParser::kU_CopyTO() { match(CypherParser::SP); setState(354); match(CypherParser::T__1); - setState(355); - oC_Query(); setState(356); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(355); + match(CypherParser::SP); + } + setState(358); + oC_Query(); + setState(360); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(359); + match(CypherParser::SP); + } + setState(362); match(CypherParser::T__2); - setState(357); + setState(363); match(CypherParser::SP); - setState(358); + setState(364); match(CypherParser::TO); - setState(359); + setState(365); match(CypherParser::SP); - setState(360); + setState(366); match(CypherParser::StringLiteral); } @@ -1609,31 +1631,31 @@ CypherParser::KU_StandaloneCallContext* CypherParser::kU_StandaloneCall() { }); try { enterOuterAlt(_localctx, 1); - setState(362); + setState(368); match(CypherParser::CALL); - setState(363); + setState(369); match(CypherParser::SP); - setState(364); + setState(370); oC_SymbolicName(); - setState(366); + setState(372); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(365); + setState(371); match(CypherParser::SP); } - setState(368); + setState(374); match(CypherParser::T__4); - setState(370); + setState(376); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(369); + setState(375); match(CypherParser::SP); } - setState(372); + setState(378); oC_Literal(); } @@ -1703,27 +1725,27 @@ CypherParser::KU_CommentOnContext* CypherParser::kU_CommentOn() { }); try { enterOuterAlt(_localctx, 1); - setState(374); + setState(380); match(CypherParser::COMMENT); - setState(375); + setState(381); match(CypherParser::SP); - setState(376); + setState(382); match(CypherParser::ON); - setState(377); + setState(383); match(CypherParser::SP); - setState(378); + setState(384); match(CypherParser::TABLE); - setState(379); + setState(385); match(CypherParser::SP); - setState(380); + setState(386); oC_SchemaName(); - setState(381); + setState(387); match(CypherParser::SP); - setState(382); + setState(388); match(CypherParser::IS); - setState(383); + setState(389); match(CypherParser::SP); - setState(384); + setState(390); match(CypherParser::StringLiteral); } @@ -1803,32 +1825,32 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(386); + setState(392); match(CypherParser::CREATE); - setState(387); + setState(393); match(CypherParser::SP); - setState(388); + setState(394); match(CypherParser::MACRO); - setState(389); + setState(395); match(CypherParser::SP); - setState(390); + setState(396); oC_FunctionName(); - setState(392); + setState(398); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(391); + setState(397); match(CypherParser::SP); } - setState(394); + setState(400); match(CypherParser::T__1); - setState(396); + setState(402); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 18, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 20, _ctx)) { case 1: { - setState(395); + setState(401); match(CypherParser::SP); break; } @@ -1836,12 +1858,12 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { default: break; } - setState(399); + setState(405); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 19, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 21, _ctx)) { case 1: { - setState(398); + setState(404); kU_PositionalArgs(); break; } @@ -1849,12 +1871,12 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { default: break; } - setState(402); + setState(408); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 20, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 22, _ctx)) { case 1: { - setState(401); + setState(407); match(CypherParser::SP); break; } @@ -1862,62 +1884,62 @@ CypherParser::KU_CreateMacroContext* CypherParser::kU_CreateMacro() { default: break; } - setState(405); + setState(411); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COMMENT || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 1153) != 0)) { - setState(404); + setState(410); kU_DefaultArg(); } - setState(417); + setState(423); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 24, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 26, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(408); + setState(414); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(407); + setState(413); match(CypherParser::SP); } - setState(410); + setState(416); match(CypherParser::T__3); - setState(412); + setState(418); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(411); + setState(417); match(CypherParser::SP); } - setState(414); + setState(420); kU_DefaultArg(); } - setState(419); + setState(425); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 24, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 26, _ctx); } - setState(421); + setState(427); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(420); + setState(426); match(CypherParser::SP); } - setState(423); + setState(429); match(CypherParser::T__2); - setState(424); + setState(430); match(CypherParser::SP); - setState(425); + setState(431); match(CypherParser::AS); - setState(426); + setState(432); match(CypherParser::SP); - setState(427); + setState(433); oC_Expression(); } @@ -1973,37 +1995,37 @@ CypherParser::KU_PositionalArgsContext* CypherParser::kU_PositionalArgs() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(429); + setState(435); oC_SymbolicName(); - setState(440); + setState(446); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 28, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 30, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(431); + setState(437); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(430); + setState(436); match(CypherParser::SP); } - setState(433); + setState(439); match(CypherParser::T__3); - setState(435); + setState(441); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(434); + setState(440); match(CypherParser::SP); } - setState(437); + setState(443); oC_SymbolicName(); } - setState(442); + setState(448); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 28, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 30, _ctx); } } @@ -2058,29 +2080,29 @@ CypherParser::KU_DefaultArgContext* CypherParser::kU_DefaultArg() { }); try { enterOuterAlt(_localctx, 1); - setState(443); + setState(449); oC_SymbolicName(); - setState(445); + setState(451); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(444); + setState(450); match(CypherParser::SP); } - setState(447); + setState(453); match(CypherParser::T__5); - setState(448); + setState(454); match(CypherParser::T__4); - setState(450); + setState(456); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(449); + setState(455); match(CypherParser::SP); } - setState(452); + setState(458); oC_Literal(); } @@ -2138,96 +2160,96 @@ CypherParser::KU_FilePathsContext* CypherParser::kU_FilePaths() { exitRule(); }); try { - setState(487); + setState(493); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__6: { enterOuterAlt(_localctx, 1); - setState(454); + setState(460); match(CypherParser::T__6); - setState(456); + setState(462); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(455); + setState(461); match(CypherParser::SP); } - setState(458); + setState(464); match(CypherParser::StringLiteral); - setState(469); + setState(475); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3 || _la == CypherParser::SP) { - setState(460); + setState(466); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(459); + setState(465); match(CypherParser::SP); } - setState(462); + setState(468); match(CypherParser::T__3); - setState(464); + setState(470); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(463); + setState(469); match(CypherParser::SP); } - setState(466); + setState(472); match(CypherParser::StringLiteral); - setState(471); + setState(477); _errHandler->sync(this); _la = _input->LA(1); } - setState(472); + setState(478); match(CypherParser::T__7); break; } case CypherParser::StringLiteral: { enterOuterAlt(_localctx, 2); - setState(473); + setState(479); match(CypherParser::StringLiteral); break; } case CypherParser::GLOB: { enterOuterAlt(_localctx, 3); - setState(474); + setState(480); match(CypherParser::GLOB); - setState(476); + setState(482); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(475); + setState(481); match(CypherParser::SP); } - setState(478); + setState(484); match(CypherParser::T__1); - setState(480); + setState(486); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(479); + setState(485); match(CypherParser::SP); } - setState(482); + setState(488); match(CypherParser::StringLiteral); - setState(484); + setState(490); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(483); + setState(489); match(CypherParser::SP); } - setState(486); + setState(492); match(CypherParser::T__2); break; } @@ -2289,37 +2311,37 @@ CypherParser::KU_ParsingOptionsContext* CypherParser::kU_ParsingOptions() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(489); + setState(495); kU_ParsingOption(); - setState(500); + setState(506); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 41, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 43, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(491); + setState(497); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(490); + setState(496); match(CypherParser::SP); } - setState(493); + setState(499); match(CypherParser::T__3); - setState(495); + setState(501); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(494); + setState(500); match(CypherParser::SP); } - setState(497); + setState(503); kU_ParsingOption(); } - setState(502); + setState(508); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 41, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 43, _ctx); } } @@ -2374,27 +2396,27 @@ CypherParser::KU_ParsingOptionContext* CypherParser::kU_ParsingOption() { }); try { enterOuterAlt(_localctx, 1); - setState(503); + setState(509); oC_SymbolicName(); - setState(505); + setState(511); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(504); + setState(510); match(CypherParser::SP); } - setState(507); + setState(513); match(CypherParser::T__4); - setState(509); + setState(515); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(508); + setState(514); match(CypherParser::SP); } - setState(511); + setState(517); oC_Literal(); } @@ -2455,47 +2477,47 @@ CypherParser::KU_DDLContext* CypherParser::kU_DDL() { exitRule(); }); try { - setState(519); + setState(525); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 44, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 46, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(513); + setState(519); kU_CreateNodeTable(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(514); + setState(520); kU_CreateRelTable(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(515); + setState(521); kU_CreateRelTableGroup(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(516); + setState(522); kU_CreateRdfGraph(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(517); + setState(523); kU_DropTable(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(518); + setState(524); kU_AlterTable(); break; } @@ -2572,70 +2594,70 @@ CypherParser::KU_CreateNodeTableContext* CypherParser::kU_CreateNodeTable() { }); try { enterOuterAlt(_localctx, 1); - setState(521); + setState(527); match(CypherParser::CREATE); - setState(522); + setState(528); match(CypherParser::SP); - setState(523); + setState(529); match(CypherParser::NODE); - setState(524); + setState(530); match(CypherParser::SP); - setState(525); + setState(531); match(CypherParser::TABLE); - setState(526); + setState(532); match(CypherParser::SP); - setState(527); + setState(533); oC_SchemaName(); - setState(529); + setState(535); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(528); + setState(534); match(CypherParser::SP); } - setState(531); + setState(537); match(CypherParser::T__1); - setState(533); + setState(539); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(532); + setState(538); match(CypherParser::SP); } - setState(535); + setState(541); kU_PropertyDefinitions(); - setState(537); + setState(543); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(536); + setState(542); match(CypherParser::SP); } - setState(539); + setState(545); match(CypherParser::T__3); - setState(541); + setState(547); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(540); + setState(546); match(CypherParser::SP); } - setState(543); + setState(549); kU_CreateNodeConstraint(); - setState(546); + setState(552); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(545); + setState(551); match(CypherParser::SP); } - setState(548); + setState(554); match(CypherParser::T__2); } @@ -2710,71 +2732,71 @@ CypherParser::KU_CreateRelTableContext* CypherParser::kU_CreateRelTable() { }); try { enterOuterAlt(_localctx, 1); - setState(550); + setState(556); match(CypherParser::CREATE); - setState(551); + setState(557); match(CypherParser::SP); - setState(552); + setState(558); match(CypherParser::REL); - setState(553); + setState(559); match(CypherParser::SP); - setState(554); + setState(560); match(CypherParser::TABLE); - setState(555); + setState(561); match(CypherParser::SP); - setState(556); + setState(562); oC_SchemaName(); - setState(558); + setState(564); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(557); + setState(563); match(CypherParser::SP); } - setState(560); + setState(566); match(CypherParser::T__1); - setState(562); + setState(568); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(561); + setState(567); match(CypherParser::SP); } - setState(564); + setState(570); kU_RelTableConnection(); - setState(566); + setState(572); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(565); + setState(571); match(CypherParser::SP); } - setState(576); + setState(582); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 55, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 57, _ctx)) { case 1: { - setState(568); + setState(574); match(CypherParser::T__3); - setState(570); + setState(576); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(569); + setState(575); match(CypherParser::SP); } - setState(572); + setState(578); kU_PropertyDefinitions(); - setState(574); + setState(580); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(573); + setState(579); match(CypherParser::SP); } break; @@ -2783,33 +2805,33 @@ CypherParser::KU_CreateRelTableContext* CypherParser::kU_CreateRelTable() { default: break; } - setState(586); + setState(592); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__3) { - setState(578); + setState(584); match(CypherParser::T__3); - setState(580); + setState(586); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(579); + setState(585); match(CypherParser::SP); } - setState(582); + setState(588); oC_SymbolicName(); - setState(584); + setState(590); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(583); + setState(589); match(CypherParser::SP); } } - setState(588); + setState(594); match(CypherParser::T__2); } @@ -2893,69 +2915,69 @@ CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGrou try { size_t alt; enterOuterAlt(_localctx, 1); - setState(590); + setState(596); match(CypherParser::CREATE); - setState(591); + setState(597); match(CypherParser::SP); - setState(592); + setState(598); match(CypherParser::REL); - setState(593); + setState(599); match(CypherParser::SP); - setState(594); + setState(600); match(CypherParser::TABLE); - setState(595); + setState(601); match(CypherParser::SP); - setState(596); + setState(602); match(CypherParser::GROUP); - setState(597); + setState(603); match(CypherParser::SP); - setState(598); + setState(604); oC_SchemaName(); - setState(600); + setState(606); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(599); + setState(605); match(CypherParser::SP); } - setState(602); + setState(608); match(CypherParser::T__1); - setState(604); + setState(610); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(603); + setState(609); match(CypherParser::SP); } - setState(606); + setState(612); kU_RelTableConnection(); - setState(608); + setState(614); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(607); + setState(613); match(CypherParser::SP); } - setState(615); + setState(621); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(610); + setState(616); match(CypherParser::T__3); - setState(612); + setState(618); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(611); + setState(617); match(CypherParser::SP); } - setState(614); + setState(620); kU_RelTableConnection(); break; } @@ -2963,41 +2985,41 @@ CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGrou default: throw NoViableAltException(this); } - setState(617); + setState(623); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 63, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 65, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(620); + setState(626); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(619); + setState(625); match(CypherParser::SP); } - setState(630); + setState(636); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 67, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 69, _ctx)) { case 1: { - setState(622); + setState(628); match(CypherParser::T__3); - setState(624); + setState(630); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(623); + setState(629); match(CypherParser::SP); } - setState(626); + setState(632); kU_PropertyDefinitions(); - setState(628); + setState(634); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(627); + setState(633); match(CypherParser::SP); } break; @@ -3006,33 +3028,33 @@ CypherParser::KU_CreateRelTableGroupContext* CypherParser::kU_CreateRelTableGrou default: break; } - setState(640); + setState(646); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__3) { - setState(632); + setState(638); match(CypherParser::T__3); - setState(634); + setState(640); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(633); + setState(639); match(CypherParser::SP); } - setState(636); + setState(642); oC_SymbolicName(); - setState(638); + setState(644); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(637); + setState(643); match(CypherParser::SP); } } - setState(642); + setState(648); match(CypherParser::T__2); } @@ -3094,19 +3116,19 @@ CypherParser::KU_RelTableConnectionContext* CypherParser::kU_RelTableConnection( }); try { enterOuterAlt(_localctx, 1); - setState(644); + setState(650); match(CypherParser::FROM); - setState(645); + setState(651); match(CypherParser::SP); - setState(646); + setState(652); oC_SchemaName(); - setState(647); + setState(653); match(CypherParser::SP); - setState(648); + setState(654); match(CypherParser::TO); - setState(649); + setState(655); match(CypherParser::SP); - setState(650); + setState(656); oC_SchemaName(); } @@ -3168,19 +3190,19 @@ CypherParser::KU_CreateRdfGraphContext* CypherParser::kU_CreateRdfGraph() { }); try { enterOuterAlt(_localctx, 1); - setState(652); + setState(658); match(CypherParser::CREATE); - setState(653); + setState(659); match(CypherParser::SP); - setState(654); + setState(660); match(CypherParser::RDF); - setState(655); + setState(661); match(CypherParser::SP); - setState(656); + setState(662); match(CypherParser::GRAPH); - setState(657); + setState(663); match(CypherParser::SP); - setState(658); + setState(664); oC_SchemaName(); } @@ -3238,15 +3260,15 @@ CypherParser::KU_DropTableContext* CypherParser::kU_DropTable() { }); try { enterOuterAlt(_localctx, 1); - setState(660); + setState(666); match(CypherParser::DROP); - setState(661); + setState(667); match(CypherParser::SP); - setState(662); + setState(668); match(CypherParser::TABLE); - setState(663); + setState(669); match(CypherParser::SP); - setState(664); + setState(670); oC_SchemaName(); } @@ -3308,19 +3330,19 @@ CypherParser::KU_AlterTableContext* CypherParser::kU_AlterTable() { }); try { enterOuterAlt(_localctx, 1); - setState(666); + setState(672); match(CypherParser::ALTER); - setState(667); + setState(673); match(CypherParser::SP); - setState(668); + setState(674); match(CypherParser::TABLE); - setState(669); + setState(675); match(CypherParser::SP); - setState(670); + setState(676); oC_SchemaName(); - setState(671); + setState(677); match(CypherParser::SP); - setState(672); + setState(678); kU_AlterOptions(); } @@ -3373,33 +3395,33 @@ CypherParser::KU_AlterOptionsContext* CypherParser::kU_AlterOptions() { exitRule(); }); try { - setState(678); + setState(684); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 71, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 73, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(674); + setState(680); kU_AddProperty(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(675); + setState(681); kU_DropProperty(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(676); + setState(682); kU_RenameTable(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(677); + setState(683); kU_RenameProperty(); break; } @@ -3471,28 +3493,28 @@ CypherParser::KU_AddPropertyContext* CypherParser::kU_AddProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(680); + setState(686); match(CypherParser::ADD); - setState(681); + setState(687); match(CypherParser::SP); - setState(682); + setState(688); oC_PropertyKeyName(); - setState(683); + setState(689); match(CypherParser::SP); - setState(684); + setState(690); kU_DataType(); - setState(689); + setState(695); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 72, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 74, _ctx)) { case 1: { - setState(685); + setState(691); match(CypherParser::SP); - setState(686); + setState(692); match(CypherParser::DEFAULT); - setState(687); + setState(693); match(CypherParser::SP); - setState(688); + setState(694); oC_Expression(); break; } @@ -3548,11 +3570,11 @@ CypherParser::KU_DropPropertyContext* CypherParser::kU_DropProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(691); + setState(697); match(CypherParser::DROP); - setState(692); + setState(698); match(CypherParser::SP); - setState(693); + setState(699); oC_PropertyKeyName(); } @@ -3610,15 +3632,15 @@ CypherParser::KU_RenameTableContext* CypherParser::kU_RenameTable() { }); try { enterOuterAlt(_localctx, 1); - setState(695); + setState(701); match(CypherParser::RENAME); - setState(696); + setState(702); match(CypherParser::SP); - setState(697); + setState(703); match(CypherParser::TO); - setState(698); + setState(704); match(CypherParser::SP); - setState(699); + setState(705); oC_SchemaName(); } @@ -3680,19 +3702,19 @@ CypherParser::KU_RenamePropertyContext* CypherParser::kU_RenameProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(701); + setState(707); match(CypherParser::RENAME); - setState(702); + setState(708); match(CypherParser::SP); - setState(703); + setState(709); oC_PropertyKeyName(); - setState(704); + setState(710); match(CypherParser::SP); - setState(705); + setState(711); match(CypherParser::TO); - setState(706); + setState(712); match(CypherParser::SP); - setState(707); + setState(713); oC_PropertyKeyName(); } @@ -3748,37 +3770,37 @@ CypherParser::KU_PropertyDefinitionsContext* CypherParser::kU_PropertyDefinition try { size_t alt; enterOuterAlt(_localctx, 1); - setState(709); + setState(715); kU_PropertyDefinition(); - setState(720); + setState(726); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 75, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 77, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(711); + setState(717); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(710); + setState(716); match(CypherParser::SP); } - setState(713); + setState(719); match(CypherParser::T__3); - setState(715); + setState(721); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(714); + setState(720); match(CypherParser::SP); } - setState(717); + setState(723); kU_PropertyDefinition(); } - setState(722); + setState(728); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 75, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 77, _ctx); } } @@ -3828,11 +3850,11 @@ CypherParser::KU_PropertyDefinitionContext* CypherParser::kU_PropertyDefinition( }); try { enterOuterAlt(_localctx, 1); - setState(723); + setState(729); oC_PropertyKeyName(); - setState(724); + setState(730); match(CypherParser::SP); - setState(725); + setState(731); kU_DataType(); } @@ -3891,41 +3913,41 @@ CypherParser::KU_CreateNodeConstraintContext* CypherParser::kU_CreateNodeConstra }); try { enterOuterAlt(_localctx, 1); - setState(727); + setState(733); match(CypherParser::PRIMARY); - setState(728); + setState(734); match(CypherParser::SP); - setState(729); + setState(735); match(CypherParser::KEY); - setState(731); + setState(737); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(730); + setState(736); match(CypherParser::SP); } - setState(733); + setState(739); match(CypherParser::T__1); - setState(735); + setState(741); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(734); + setState(740); match(CypherParser::SP); } - setState(737); + setState(743); oC_PropertyKeyName(); - setState(739); + setState(745); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(738); + setState(744); match(CypherParser::SP); } - setState(741); + setState(747); match(CypherParser::T__2); } @@ -3995,152 +4017,152 @@ CypherParser::KU_DataTypeContext* CypherParser::kU_DataType() { exitRule(); }); try { - setState(797); + setState(803); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 90, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 92, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(743); + setState(749); oC_SymbolicName(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(744); + setState(750); oC_SymbolicName(); - setState(745); + setState(751); kU_ListIdentifiers(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(747); + setState(753); match(CypherParser::UNION); - setState(749); + setState(755); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(748); + setState(754); match(CypherParser::SP); } - setState(751); + setState(757); match(CypherParser::T__1); - setState(753); + setState(759); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(752); + setState(758); match(CypherParser::SP); } - setState(755); + setState(761); kU_PropertyDefinitions(); - setState(757); + setState(763); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(756); + setState(762); match(CypherParser::SP); } - setState(759); + setState(765); match(CypherParser::T__2); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(761); + setState(767); oC_SymbolicName(); - setState(763); + setState(769); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(762); + setState(768); match(CypherParser::SP); } - setState(765); + setState(771); match(CypherParser::T__1); - setState(767); + setState(773); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(766); + setState(772); match(CypherParser::SP); } - setState(769); + setState(775); kU_PropertyDefinitions(); - setState(771); + setState(777); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(770); + setState(776); match(CypherParser::SP); } - setState(773); + setState(779); match(CypherParser::T__2); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(775); + setState(781); oC_SymbolicName(); - setState(777); + setState(783); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(776); + setState(782); match(CypherParser::SP); } - setState(779); + setState(785); match(CypherParser::T__1); - setState(781); + setState(787); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(780); + setState(786); match(CypherParser::SP); } - setState(783); + setState(789); kU_DataType(); - setState(785); + setState(791); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(784); + setState(790); match(CypherParser::SP); } - setState(787); + setState(793); match(CypherParser::T__3); - setState(789); + setState(795); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(788); + setState(794); match(CypherParser::SP); } - setState(791); + setState(797); kU_DataType(); - setState(793); + setState(799); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(792); + setState(798); match(CypherParser::SP); } - setState(795); + setState(801); match(CypherParser::T__2); break; } @@ -4193,15 +4215,15 @@ CypherParser::KU_ListIdentifiersContext* CypherParser::kU_ListIdentifiers() { }); try { enterOuterAlt(_localctx, 1); - setState(799); + setState(805); kU_ListIdentifier(); - setState(803); + setState(809); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__6) { - setState(800); + setState(806); kU_ListIdentifier(); - setState(805); + setState(811); _errHandler->sync(this); _la = _input->LA(1); } @@ -4246,17 +4268,17 @@ CypherParser::KU_ListIdentifierContext* CypherParser::kU_ListIdentifier() { }); try { enterOuterAlt(_localctx, 1); - setState(806); + setState(812); match(CypherParser::T__6); - setState(808); + setState(814); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(807); + setState(813); oC_IntegerLiteral(); } - setState(810); + setState(816); match(CypherParser::T__7); } @@ -4301,19 +4323,19 @@ CypherParser::OC_AnyCypherOptionContext* CypherParser::oC_AnyCypherOption() { exitRule(); }); try { - setState(814); + setState(820); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::EXPLAIN: { enterOuterAlt(_localctx, 1); - setState(812); + setState(818); oC_Explain(); break; } case CypherParser::PROFILE: { enterOuterAlt(_localctx, 2); - setState(813); + setState(819); oC_Profile(); break; } @@ -4361,7 +4383,7 @@ CypherParser::OC_ExplainContext* CypherParser::oC_Explain() { }); try { enterOuterAlt(_localctx, 1); - setState(816); + setState(822); match(CypherParser::EXPLAIN); } @@ -4403,7 +4425,7 @@ CypherParser::OC_ProfileContext* CypherParser::oC_Profile() { }); try { enterOuterAlt(_localctx, 1); - setState(818); + setState(824); match(CypherParser::PROFILE); } @@ -4480,63 +4502,63 @@ CypherParser::KU_TransactionContext* CypherParser::kU_Transaction() { exitRule(); }); try { - setState(834); + setState(840); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 94, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 96, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(820); + setState(826); match(CypherParser::BEGIN); - setState(821); + setState(827); match(CypherParser::SP); - setState(822); + setState(828); match(CypherParser::READ); - setState(823); + setState(829); match(CypherParser::SP); - setState(824); + setState(830); match(CypherParser::TRANSACTION); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(825); + setState(831); match(CypherParser::BEGIN); - setState(826); + setState(832); match(CypherParser::SP); - setState(827); + setState(833); match(CypherParser::WRITE); - setState(828); + setState(834); match(CypherParser::SP); - setState(829); + setState(835); match(CypherParser::TRANSACTION); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(830); + setState(836); match(CypherParser::COMMIT); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(831); + setState(837); match(CypherParser::COMMIT_SKIP_CHECKPOINT); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(832); + setState(838); match(CypherParser::ROLLBACK); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(833); + setState(839); match(CypherParser::ROLLBACK_SKIP_CHECKPOINT); break; } @@ -4584,7 +4606,7 @@ CypherParser::OC_QueryContext* CypherParser::oC_Query() { }); try { enterOuterAlt(_localctx, 1); - setState(836); + setState(842); oC_RegularQuery(); } @@ -4651,52 +4673,52 @@ CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { }); try { size_t alt; - setState(859); + setState(865); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 99, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 101, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(838); + setState(844); oC_SingleQuery(); - setState(845); + setState(851); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 96, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 98, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(840); + setState(846); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(839); + setState(845); match(CypherParser::SP); } - setState(842); + setState(848); oC_Union(); } - setState(847); + setState(853); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 96, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 98, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(852); + setState(858); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(848); + setState(854); oC_Return(); - setState(850); + setState(856); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(849); + setState(855); match(CypherParser::SP); } break; @@ -4705,11 +4727,11 @@ CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { default: throw NoViableAltException(this); } - setState(854); + setState(860); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 98, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 100, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(856); + setState(862); oC_SingleQuery(); notifyReturnNotAtEnd(_localctx->start); break; @@ -4774,43 +4796,43 @@ CypherParser::OC_UnionContext* CypherParser::oC_Union() { exitRule(); }); try { - setState(873); + setState(879); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 102, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 104, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(861); + setState(867); match(CypherParser::UNION); - setState(862); + setState(868); match(CypherParser::SP); - setState(863); + setState(869); match(CypherParser::ALL); - setState(865); + setState(871); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(864); + setState(870); match(CypherParser::SP); } - setState(867); + setState(873); oC_SingleQuery(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(868); + setState(874); match(CypherParser::UNION); - setState(870); + setState(876); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(869); + setState(875); match(CypherParser::SP); } - setState(872); + setState(878); oC_SingleQuery(); break; } @@ -4861,19 +4883,19 @@ CypherParser::OC_SingleQueryContext* CypherParser::oC_SingleQuery() { exitRule(); }); try { - setState(877); + setState(883); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 103, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 105, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(875); + setState(881); oC_SinglePartQuery(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(876); + setState(882); oC_MultiPartQuery(); break; } @@ -4946,92 +4968,92 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { }); try { size_t alt; - setState(924); + setState(930); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 114, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 116, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(885); + setState(891); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 48) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 48)) & 128849018881) != 0)) { - setState(879); + setState(885); oC_ReadingClause(); - setState(881); + setState(887); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(880); + setState(886); match(CypherParser::SP); } - setState(887); + setState(893); _errHandler->sync(this); _la = _input->LA(1); } - setState(888); + setState(894); oC_Return(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(895); + setState(901); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 48) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 48)) & 128849018881) != 0)) { - setState(889); + setState(895); oC_ReadingClause(); - setState(891); + setState(897); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(890); + setState(896); match(CypherParser::SP); } - setState(897); + setState(903); _errHandler->sync(this); _la = _input->LA(1); } - setState(898); + setState(904); oC_UpdatingClause(); - setState(905); + setState(911); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 109, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 111, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(900); + setState(906); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(899); + setState(905); match(CypherParser::SP); } - setState(902); + setState(908); oC_UpdatingClause(); } - setState(907); + setState(913); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 109, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 111, _ctx); } - setState(912); + setState(918); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 111, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 113, _ctx)) { case 1: { - setState(909); + setState(915); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(908); + setState(914); match(CypherParser::SP); } - setState(911); + setState(917); oC_Return(); break; } @@ -5044,18 +5066,18 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { case 3: { enterOuterAlt(_localctx, 3); - setState(918); + setState(924); _errHandler->sync(this); _la = _input->LA(1); do { - setState(914); + setState(920); oC_ReadingClause(); - setState(916); + setState(922); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 112, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 114, _ctx)) { case 1: { - setState(915); + setState(921); match(CypherParser::SP); break; } @@ -5063,7 +5085,7 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { default: break; } - setState(920); + setState(926); _errHandler->sync(this); _la = _input->LA(1); } while (((((_la - 48) & ~ 0x3fULL) == 0) && @@ -5133,20 +5155,20 @@ CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(930); + setState(936); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(926); + setState(932); kU_QueryPart(); - setState(928); + setState(934); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(927); + setState(933); match(CypherParser::SP); } break; @@ -5155,11 +5177,11 @@ CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { default: throw NoViableAltException(this); } - setState(932); + setState(938); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 116, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 118, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(934); + setState(940); oC_SinglePartQuery(); } @@ -5226,45 +5248,45 @@ CypherParser::KU_QueryPartContext* CypherParser::kU_QueryPart() { }); try { enterOuterAlt(_localctx, 1); - setState(942); + setState(948); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 48) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 48)) & 128849018881) != 0)) { - setState(936); + setState(942); oC_ReadingClause(); - setState(938); + setState(944); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(937); + setState(943); match(CypherParser::SP); } - setState(944); + setState(950); _errHandler->sync(this); _la = _input->LA(1); } - setState(951); + setState(957); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 85) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 85)) & 27) != 0)) { - setState(945); + setState(951); oC_UpdatingClause(); - setState(947); + setState(953); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(946); + setState(952); match(CypherParser::SP); } - setState(953); + setState(959); _errHandler->sync(this); _la = _input->LA(1); } - setState(954); + setState(960); oC_With(); } @@ -5317,33 +5339,33 @@ CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { exitRule(); }); try { - setState(960); + setState(966); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::CREATE: { enterOuterAlt(_localctx, 1); - setState(956); + setState(962); oC_Create(); break; } case CypherParser::MERGE: { enterOuterAlt(_localctx, 2); - setState(957); + setState(963); oC_Merge(); break; } case CypherParser::SET: { enterOuterAlt(_localctx, 3); - setState(958); + setState(964); oC_Set(); break; } case CypherParser::DELETE: { enterOuterAlt(_localctx, 4); - setState(959); + setState(965); oC_Delete(); break; } @@ -5402,34 +5424,34 @@ CypherParser::OC_ReadingClauseContext* CypherParser::oC_ReadingClause() { exitRule(); }); try { - setState(966); + setState(972); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::OPTIONAL: case CypherParser::MATCH: { enterOuterAlt(_localctx, 1); - setState(962); + setState(968); oC_Match(); break; } case CypherParser::UNWIND: { enterOuterAlt(_localctx, 2); - setState(963); + setState(969); oC_Unwind(); break; } case CypherParser::CALL: { enterOuterAlt(_localctx, 3); - setState(964); + setState(970); kU_InQueryCall(); break; } case CypherParser::LOAD: { enterOuterAlt(_localctx, 4); - setState(965); + setState(971); kU_LoadFrom(); break; } @@ -5478,6 +5500,10 @@ CypherParser::KU_ParsingOptionsContext* CypherParser::KU_LoadFromContext::kU_Par return getRuleContext(0); } +CypherParser::OC_WhereContext* CypherParser::KU_LoadFromContext::oC_Where() { + return getRuleContext(0); +} + size_t CypherParser::KU_LoadFromContext::getRuleIndex() const { return CypherParser::RuleKU_LoadFrom; @@ -5498,50 +5524,50 @@ CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { }); try { enterOuterAlt(_localctx, 1); - setState(968); + setState(974); match(CypherParser::LOAD); - setState(969); + setState(975); match(CypherParser::SP); - setState(970); + setState(976); match(CypherParser::FROM); - setState(971); + setState(977); match(CypherParser::SP); - setState(972); + setState(978); kU_FilePaths(); - setState(986); + setState(992); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 126, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 128, _ctx)) { case 1: { - setState(974); + setState(980); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(973); + setState(979); match(CypherParser::SP); } - setState(976); + setState(982); match(CypherParser::T__1); - setState(978); + setState(984); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(977); + setState(983); match(CypherParser::SP); } - setState(980); + setState(986); kU_ParsingOptions(); - setState(982); + setState(988); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(981); + setState(987); match(CypherParser::SP); } - setState(984); + setState(990); match(CypherParser::T__2); break; } @@ -5549,6 +5575,27 @@ CypherParser::KU_LoadFromContext* CypherParser::kU_LoadFrom() { default: break; } + setState(998); + _errHandler->sync(this); + + switch (getInterpreter()->adaptivePredict(_input, 130, _ctx)) { + case 1: { + setState(995); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(994); + match(CypherParser::SP); + } + setState(997); + oC_Where(); + break; + } + + default: + break; + } } catch (RecognitionException &e) { @@ -5610,36 +5657,36 @@ CypherParser::KU_InQueryCallContext* CypherParser::kU_InQueryCall() { }); try { enterOuterAlt(_localctx, 1); - setState(988); + setState(1000); match(CypherParser::CALL); - setState(989); + setState(1001); match(CypherParser::SP); - setState(990); + setState(1002); oC_FunctionName(); - setState(992); + setState(1004); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(991); + setState(1003); match(CypherParser::SP); } - setState(994); + setState(1006); match(CypherParser::T__1); - setState(998); + setState(1010); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__6 || _la == CypherParser::T__8 || ((((_la - 116) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 116)) & 264711) != 0)) { - setState(995); + setState(1007); oC_Literal(); - setState(1000); + setState(1012); _errHandler->sync(this); _la = _input->LA(1); } - setState(1001); + setState(1013); match(CypherParser::T__2); } @@ -5702,42 +5749,42 @@ CypherParser::OC_MatchContext* CypherParser::oC_Match() { }); try { enterOuterAlt(_localctx, 1); - setState(1005); + setState(1017); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::OPTIONAL) { - setState(1003); + setState(1015); match(CypherParser::OPTIONAL); - setState(1004); + setState(1016); match(CypherParser::SP); } - setState(1007); + setState(1019); match(CypherParser::MATCH); - setState(1009); + setState(1021); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1008); + setState(1020); match(CypherParser::SP); } - setState(1011); + setState(1023); oC_Pattern(); - setState(1016); + setState(1028); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 132, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 136, _ctx)) { case 1: { - setState(1013); + setState(1025); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1012); + setState(1024); match(CypherParser::SP); } - setState(1015); + setState(1027); oC_Where(); break; } @@ -5806,25 +5853,25 @@ CypherParser::OC_UnwindContext* CypherParser::oC_Unwind() { }); try { enterOuterAlt(_localctx, 1); - setState(1018); + setState(1030); match(CypherParser::UNWIND); - setState(1020); + setState(1032); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1019); + setState(1031); match(CypherParser::SP); } - setState(1022); + setState(1034); oC_Expression(); - setState(1023); + setState(1035); match(CypherParser::SP); - setState(1024); + setState(1036); match(CypherParser::AS); - setState(1025); + setState(1037); match(CypherParser::SP); - setState(1026); + setState(1038); oC_Variable(); } @@ -5875,17 +5922,17 @@ CypherParser::OC_CreateContext* CypherParser::oC_Create() { }); try { enterOuterAlt(_localctx, 1); - setState(1028); + setState(1040); match(CypherParser::CREATE); - setState(1030); + setState(1042); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1029); + setState(1041); match(CypherParser::SP); } - setState(1032); + setState(1044); oC_Pattern(); } @@ -5949,31 +5996,31 @@ CypherParser::OC_MergeContext* CypherParser::oC_Merge() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1034); + setState(1046); match(CypherParser::MERGE); - setState(1036); + setState(1048); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1035); + setState(1047); match(CypherParser::SP); } - setState(1038); + setState(1050); oC_Pattern(); - setState(1043); + setState(1055); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 136, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 140, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1039); + setState(1051); match(CypherParser::SP); - setState(1040); + setState(1052); oC_MergeAction(); } - setState(1045); + setState(1057); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 136, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 140, _ctx); } } @@ -6034,35 +6081,35 @@ CypherParser::OC_MergeActionContext* CypherParser::oC_MergeAction() { exitRule(); }); try { - setState(1056); + setState(1068); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 137, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 141, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1046); + setState(1058); match(CypherParser::ON); - setState(1047); + setState(1059); match(CypherParser::SP); - setState(1048); + setState(1060); match(CypherParser::MATCH); - setState(1049); + setState(1061); match(CypherParser::SP); - setState(1050); + setState(1062); oC_Set(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1051); + setState(1063); match(CypherParser::ON); - setState(1052); + setState(1064); match(CypherParser::SP); - setState(1053); + setState(1065); match(CypherParser::CREATE); - setState(1054); + setState(1066); match(CypherParser::SP); - setState(1055); + setState(1067); oC_Set(); break; } @@ -6128,47 +6175,47 @@ CypherParser::OC_SetContext* CypherParser::oC_Set() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1058); + setState(1070); match(CypherParser::SET); - setState(1060); + setState(1072); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1059); + setState(1071); match(CypherParser::SP); } - setState(1062); + setState(1074); oC_SetItem(); - setState(1073); + setState(1085); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 141, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 145, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1064); + setState(1076); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1063); + setState(1075); match(CypherParser::SP); } - setState(1066); + setState(1078); match(CypherParser::T__3); - setState(1068); + setState(1080); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1067); + setState(1079); match(CypherParser::SP); } - setState(1070); + setState(1082); oC_SetItem(); } - setState(1075); + setState(1087); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 141, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 145, _ctx); } } @@ -6223,27 +6270,27 @@ CypherParser::OC_SetItemContext* CypherParser::oC_SetItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1076); + setState(1088); oC_PropertyExpression(); - setState(1078); + setState(1090); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1077); + setState(1089); match(CypherParser::SP); } - setState(1080); + setState(1092); match(CypherParser::T__4); - setState(1082); + setState(1094); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1081); + setState(1093); match(CypherParser::SP); } - setState(1084); + setState(1096); oC_Expression(); } @@ -6303,47 +6350,47 @@ CypherParser::OC_DeleteContext* CypherParser::oC_Delete() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1086); + setState(1098); match(CypherParser::DELETE); - setState(1088); + setState(1100); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1087); + setState(1099); match(CypherParser::SP); } - setState(1090); + setState(1102); oC_Expression(); - setState(1101); + setState(1113); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 147, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 151, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1092); + setState(1104); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1091); + setState(1103); match(CypherParser::SP); } - setState(1094); + setState(1106); match(CypherParser::T__3); - setState(1096); + setState(1108); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1095); + setState(1107); match(CypherParser::SP); } - setState(1098); + setState(1110); oC_Expression(); } - setState(1103); + setState(1115); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 147, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 151, _ctx); } } @@ -6398,24 +6445,24 @@ CypherParser::OC_WithContext* CypherParser::oC_With() { }); try { enterOuterAlt(_localctx, 1); - setState(1104); + setState(1116); match(CypherParser::WITH); - setState(1105); + setState(1117); oC_ProjectionBody(); - setState(1110); + setState(1122); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 149, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 153, _ctx)) { case 1: { - setState(1107); + setState(1119); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1106); + setState(1118); match(CypherParser::SP); } - setState(1109); + setState(1121); oC_Where(); break; } @@ -6467,9 +6514,9 @@ CypherParser::OC_ReturnContext* CypherParser::oC_Return() { }); try { enterOuterAlt(_localctx, 1); - setState(1112); + setState(1124); match(CypherParser::RETURN); - setState(1113); + setState(1125); oC_ProjectionBody(); } @@ -6536,20 +6583,20 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { }); try { enterOuterAlt(_localctx, 1); - setState(1119); + setState(1131); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 151, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 155, _ctx)) { case 1: { - setState(1116); + setState(1128); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1115); + setState(1127); match(CypherParser::SP); } - setState(1118); + setState(1130); match(CypherParser::DISTINCT); break; } @@ -6557,18 +6604,18 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1121); + setState(1133); match(CypherParser::SP); - setState(1122); + setState(1134); oC_ProjectionItems(); - setState(1125); + setState(1137); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 152, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 156, _ctx)) { case 1: { - setState(1123); + setState(1135); match(CypherParser::SP); - setState(1124); + setState(1136); oC_Order(); break; } @@ -6576,14 +6623,14 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1129); + setState(1141); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 153, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 157, _ctx)) { case 1: { - setState(1127); + setState(1139); match(CypherParser::SP); - setState(1128); + setState(1140); oC_Skip(); break; } @@ -6591,14 +6638,14 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1133); + setState(1145); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 154, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 158, _ctx)) { case 1: { - setState(1131); + setState(1143); match(CypherParser::SP); - setState(1132); + setState(1144); oC_Limit(); break; } @@ -6663,42 +6710,42 @@ CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { }); try { size_t alt; - setState(1163); + setState(1175); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::STAR: { enterOuterAlt(_localctx, 1); - setState(1135); + setState(1147); match(CypherParser::STAR); - setState(1146); + setState(1158); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 157, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 161, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1137); + setState(1149); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1136); + setState(1148); match(CypherParser::SP); } - setState(1139); + setState(1151); match(CypherParser::T__3); - setState(1141); + setState(1153); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1140); + setState(1152); match(CypherParser::SP); } - setState(1143); + setState(1155); oC_ProjectionItem(); } - setState(1148); + setState(1160); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 157, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 161, _ctx); } break; } @@ -6722,37 +6769,37 @@ CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 2); - setState(1149); + setState(1161); oC_ProjectionItem(); - setState(1160); + setState(1172); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 160, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 164, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1151); + setState(1163); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1150); + setState(1162); match(CypherParser::SP); } - setState(1153); + setState(1165); match(CypherParser::T__3); - setState(1155); + setState(1167); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1154); + setState(1166); match(CypherParser::SP); } - setState(1157); + setState(1169); oC_ProjectionItem(); } - setState(1162); + setState(1174); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 160, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 164, _ctx); } break; } @@ -6815,27 +6862,27 @@ CypherParser::OC_ProjectionItemContext* CypherParser::oC_ProjectionItem() { exitRule(); }); try { - setState(1172); + setState(1184); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 162, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 166, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1165); + setState(1177); oC_Expression(); - setState(1166); + setState(1178); match(CypherParser::SP); - setState(1167); + setState(1179); match(CypherParser::AS); - setState(1168); + setState(1180); match(CypherParser::SP); - setState(1169); + setState(1181); oC_Variable(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1171); + setState(1183); oC_Expression(); break; } @@ -6904,33 +6951,33 @@ CypherParser::OC_OrderContext* CypherParser::oC_Order() { }); try { enterOuterAlt(_localctx, 1); - setState(1174); + setState(1186); match(CypherParser::ORDER); - setState(1175); + setState(1187); match(CypherParser::SP); - setState(1176); + setState(1188); match(CypherParser::BY); - setState(1177); + setState(1189); match(CypherParser::SP); - setState(1178); + setState(1190); oC_SortItem(); - setState(1186); + setState(1198); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1179); + setState(1191); match(CypherParser::T__3); - setState(1181); + setState(1193); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1180); + setState(1192); match(CypherParser::SP); } - setState(1183); + setState(1195); oC_SortItem(); - setState(1188); + setState(1200); _errHandler->sync(this); _la = _input->LA(1); } @@ -6982,11 +7029,11 @@ CypherParser::OC_SkipContext* CypherParser::oC_Skip() { }); try { enterOuterAlt(_localctx, 1); - setState(1189); + setState(1201); match(CypherParser::L_SKIP); - setState(1190); + setState(1202); match(CypherParser::SP); - setState(1191); + setState(1203); oC_Expression(); } @@ -7036,11 +7083,11 @@ CypherParser::OC_LimitContext* CypherParser::oC_Limit() { }); try { enterOuterAlt(_localctx, 1); - setState(1193); + setState(1205); match(CypherParser::LIMIT); - setState(1194); + setState(1206); match(CypherParser::SP); - setState(1195); + setState(1207); oC_Expression(); } @@ -7103,22 +7150,22 @@ CypherParser::OC_SortItemContext* CypherParser::oC_SortItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1197); + setState(1209); oC_Expression(); - setState(1202); + setState(1214); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 166, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 170, _ctx)) { case 1: { - setState(1199); + setState(1211); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1198); + setState(1210); match(CypherParser::SP); } - setState(1201); + setState(1213); _la = _input->LA(1); if (!(((((_la - 99) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 99)) & 15) != 0))) { @@ -7182,11 +7229,11 @@ CypherParser::OC_WhereContext* CypherParser::oC_Where() { }); try { enterOuterAlt(_localctx, 1); - setState(1204); + setState(1216); match(CypherParser::WHERE); - setState(1205); + setState(1217); match(CypherParser::SP); - setState(1206); + setState(1218); oC_Expression(); } @@ -7242,37 +7289,37 @@ CypherParser::OC_PatternContext* CypherParser::oC_Pattern() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1208); + setState(1220); oC_PatternPart(); - setState(1219); + setState(1231); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 169, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 173, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1210); + setState(1222); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1209); + setState(1221); match(CypherParser::SP); } - setState(1212); + setState(1224); match(CypherParser::T__3); - setState(1214); + setState(1226); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1213); + setState(1225); match(CypherParser::SP); } - setState(1216); + setState(1228); oC_PatternPart(); } - setState(1221); + setState(1233); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 169, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 173, _ctx); } } @@ -7326,7 +7373,7 @@ CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { exitRule(); }); try { - setState(1233); + setState(1245); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: @@ -7334,34 +7381,34 @@ CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(1222); + setState(1234); oC_Variable(); - setState(1224); + setState(1236); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1223); + setState(1235); match(CypherParser::SP); } - setState(1226); + setState(1238); match(CypherParser::T__4); - setState(1228); + setState(1240); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1227); + setState(1239); match(CypherParser::SP); } - setState(1230); + setState(1242); oC_AnonymousPatternPart(); break; } case CypherParser::T__1: { enterOuterAlt(_localctx, 2); - setState(1232); + setState(1244); oC_AnonymousPatternPart(); break; } @@ -7409,7 +7456,7 @@ CypherParser::OC_AnonymousPatternPartContext* CypherParser::oC_AnonymousPatternP }); try { enterOuterAlt(_localctx, 1); - setState(1235); + setState(1247); oC_PatternElement(); } @@ -7472,43 +7519,43 @@ CypherParser::OC_PatternElementContext* CypherParser::oC_PatternElement() { }); try { size_t alt; - setState(1251); + setState(1263); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 175, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 179, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1237); + setState(1249); oC_NodePattern(); - setState(1244); + setState(1256); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 174, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 178, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1239); + setState(1251); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1238); + setState(1250); match(CypherParser::SP); } - setState(1241); + setState(1253); oC_PatternElementChain(); } - setState(1246); + setState(1258); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 174, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 178, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1247); + setState(1259); match(CypherParser::T__1); - setState(1248); + setState(1260); oC_PatternElement(); - setState(1249); + setState(1261); match(CypherParser::T__2); break; } @@ -7573,66 +7620,66 @@ CypherParser::OC_NodePatternContext* CypherParser::oC_NodePattern() { }); try { enterOuterAlt(_localctx, 1); - setState(1253); + setState(1265); match(CypherParser::T__1); - setState(1255); + setState(1267); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1254); + setState(1266); match(CypherParser::SP); } - setState(1261); + setState(1273); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COMMENT || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 1153) != 0)) { - setState(1257); + setState(1269); oC_Variable(); - setState(1259); + setState(1271); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1258); + setState(1270); match(CypherParser::SP); } } - setState(1267); + setState(1279); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__5) { - setState(1263); + setState(1275); oC_NodeLabels(); - setState(1265); + setState(1277); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1264); + setState(1276); match(CypherParser::SP); } } - setState(1273); + setState(1285); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__8) { - setState(1269); + setState(1281); kU_Properties(); - setState(1271); + setState(1283); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1270); + setState(1282); match(CypherParser::SP); } } - setState(1275); + setState(1287); match(CypherParser::T__2); } @@ -7683,17 +7730,17 @@ CypherParser::OC_PatternElementChainContext* CypherParser::oC_PatternElementChai }); try { enterOuterAlt(_localctx, 1); - setState(1277); + setState(1289); oC_RelationshipPattern(); - setState(1279); + setState(1291); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1278); + setState(1290); match(CypherParser::SP); } - setState(1281); + setState(1293); oC_NodePattern(); } @@ -7759,29 +7806,29 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter exitRule(); }); try { - setState(1327); + setState(1339); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 195, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 199, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1283); + setState(1295); oC_LeftArrowHead(); - setState(1285); + setState(1297); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1284); + setState(1296); match(CypherParser::SP); } - setState(1287); + setState(1299); oC_Dash(); - setState(1289); + setState(1301); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 185, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 189, _ctx)) { case 1: { - setState(1288); + setState(1300); match(CypherParser::SP); break; } @@ -7789,37 +7836,37 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(1292); + setState(1304); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__6) { - setState(1291); + setState(1303); oC_RelationshipDetail(); } - setState(1295); + setState(1307); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1294); + setState(1306); match(CypherParser::SP); } - setState(1297); + setState(1309); oC_Dash(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1299); + setState(1311); oC_Dash(); - setState(1301); + setState(1313); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 188, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 192, _ctx)) { case 1: { - setState(1300); + setState(1312); match(CypherParser::SP); break; } @@ -7827,47 +7874,47 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(1304); + setState(1316); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__6) { - setState(1303); + setState(1315); oC_RelationshipDetail(); } - setState(1307); + setState(1319); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1306); + setState(1318); match(CypherParser::SP); } - setState(1309); + setState(1321); oC_Dash(); - setState(1311); + setState(1323); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1310); + setState(1322); match(CypherParser::SP); } - setState(1313); + setState(1325); oC_RightArrowHead(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1315); + setState(1327); oC_Dash(); - setState(1317); + setState(1329); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 192, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 196, _ctx)) { case 1: { - setState(1316); + setState(1328); match(CypherParser::SP); break; } @@ -7875,23 +7922,23 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(1320); + setState(1332); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__6) { - setState(1319); + setState(1331); oC_RelationshipDetail(); } - setState(1323); + setState(1335); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1322); + setState(1334); match(CypherParser::SP); } - setState(1325); + setState(1337); oC_Dash(); break; } @@ -7960,82 +8007,82 @@ CypherParser::OC_RelationshipDetailContext* CypherParser::oC_RelationshipDetail( }); try { enterOuterAlt(_localctx, 1); - setState(1329); + setState(1341); match(CypherParser::T__6); - setState(1331); + setState(1343); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1330); + setState(1342); match(CypherParser::SP); } - setState(1337); + setState(1349); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COMMENT || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 1153) != 0)) { - setState(1333); + setState(1345); oC_Variable(); - setState(1335); + setState(1347); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1334); + setState(1346); match(CypherParser::SP); } } - setState(1343); + setState(1355); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__5) { - setState(1339); + setState(1351); oC_RelationshipTypes(); - setState(1341); + setState(1353); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1340); + setState(1352); match(CypherParser::SP); } } - setState(1349); + setState(1361); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::STAR) { - setState(1345); + setState(1357); oC_RangeLiteral(); - setState(1347); + setState(1359); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1346); + setState(1358); match(CypherParser::SP); } } - setState(1355); + setState(1367); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__8) { - setState(1351); + setState(1363); kU_Properties(); - setState(1353); + setState(1365); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1352); + setState(1364); match(CypherParser::SP); } } - setState(1357); + setState(1369); match(CypherParser::T__7); } @@ -8098,102 +8145,102 @@ CypherParser::KU_PropertiesContext* CypherParser::kU_Properties() { }); try { enterOuterAlt(_localctx, 1); - setState(1359); + setState(1371); match(CypherParser::T__8); - setState(1361); + setState(1373); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1360); + setState(1372); match(CypherParser::SP); } - setState(1396); + setState(1408); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COMMENT || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 1153) != 0)) { - setState(1363); + setState(1375); oC_PropertyKeyName(); - setState(1365); + setState(1377); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1364); + setState(1376); match(CypherParser::SP); } - setState(1367); + setState(1379); match(CypherParser::T__5); - setState(1369); + setState(1381); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1368); + setState(1380); match(CypherParser::SP); } - setState(1371); + setState(1383); oC_Expression(); - setState(1373); + setState(1385); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1372); + setState(1384); match(CypherParser::SP); } - setState(1393); + setState(1405); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1375); + setState(1387); match(CypherParser::T__3); - setState(1377); + setState(1389); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1376); + setState(1388); match(CypherParser::SP); } - setState(1379); + setState(1391); oC_PropertyKeyName(); - setState(1381); + setState(1393); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1380); + setState(1392); match(CypherParser::SP); } - setState(1383); + setState(1395); match(CypherParser::T__5); - setState(1385); + setState(1397); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1384); + setState(1396); match(CypherParser::SP); } - setState(1387); + setState(1399); oC_Expression(); - setState(1389); + setState(1401); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1388); + setState(1400); match(CypherParser::SP); } - setState(1395); + setState(1407); _errHandler->sync(this); _la = _input->LA(1); } } - setState(1398); + setState(1410); match(CypherParser::T__9); } @@ -8249,55 +8296,55 @@ CypherParser::OC_RelationshipTypesContext* CypherParser::oC_RelationshipTypes() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1400); + setState(1412); match(CypherParser::T__5); - setState(1402); + setState(1414); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1401); + setState(1413); match(CypherParser::SP); } - setState(1404); + setState(1416); oC_RelTypeName(); - setState(1418); + setState(1430); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 219, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 223, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1406); + setState(1418); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1405); + setState(1417); match(CypherParser::SP); } - setState(1408); + setState(1420); match(CypherParser::T__10); - setState(1410); + setState(1422); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__5) { - setState(1409); + setState(1421); match(CypherParser::T__5); } - setState(1413); + setState(1425); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1412); + setState(1424); match(CypherParser::SP); } - setState(1415); + setState(1427); oC_RelTypeName(); } - setState(1420); + setState(1432); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 219, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 223, _ctx); } } @@ -8353,27 +8400,27 @@ CypherParser::OC_NodeLabelsContext* CypherParser::oC_NodeLabels() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1421); + setState(1433); oC_NodeLabel(); - setState(1428); + setState(1440); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 221, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 225, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1423); + setState(1435); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1422); + setState(1434); match(CypherParser::SP); } - setState(1425); + setState(1437); oC_NodeLabel(); } - setState(1430); + setState(1442); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 221, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 225, _ctx); } } @@ -8420,17 +8467,17 @@ CypherParser::OC_NodeLabelContext* CypherParser::oC_NodeLabel() { }); try { enterOuterAlt(_localctx, 1); - setState(1431); + setState(1443); match(CypherParser::T__5); - setState(1433); + setState(1445); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1432); + setState(1444); match(CypherParser::SP); } - setState(1435); + setState(1447); oC_LabelName(); } @@ -8509,14 +8556,14 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1437); + setState(1449); match(CypherParser::STAR); - setState(1439); + setState(1451); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 223, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 227, _ctx)) { case 1: { - setState(1438); + setState(1450); match(CypherParser::SP); break; } @@ -8524,21 +8571,21 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1445); + setState(1457); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::SHORTEST: { - setState(1441); + setState(1453); match(CypherParser::SHORTEST); break; } case CypherParser::ALL: { - setState(1442); + setState(1454); match(CypherParser::ALL); - setState(1443); + setState(1455); match(CypherParser::SP); - setState(1444); + setState(1456); match(CypherParser::SHORTEST); break; } @@ -8555,12 +8602,12 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1448); + setState(1460); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 225, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 229, _ctx)) { case 1: { - setState(1447); + setState(1459); match(CypherParser::SP); break; } @@ -8568,35 +8615,35 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1464); + setState(1476); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 230, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 234, _ctx)) { case 1: { - setState(1451); + setState(1463); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(1450); + setState(1462); oC_LowerBound(); } - setState(1454); + setState(1466); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1453); + setState(1465); match(CypherParser::SP); } - setState(1456); + setState(1468); match(CypherParser::T__11); - setState(1458); + setState(1470); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 228, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 232, _ctx)) { case 1: { - setState(1457); + setState(1469); match(CypherParser::SP); break; } @@ -8604,19 +8651,19 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1461); + setState(1473); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(1460); + setState(1472); oC_UpperBound(); } break; } case 2: { - setState(1463); + setState(1475); oC_IntegerLiteral(); break; } @@ -8624,80 +8671,80 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(1495); + setState(1507); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 238, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 242, _ctx)) { case 1: { - setState(1467); + setState(1479); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1466); + setState(1478); match(CypherParser::SP); } - setState(1469); + setState(1481); match(CypherParser::T__1); - setState(1471); + setState(1483); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1470); + setState(1482); match(CypherParser::SP); } - setState(1473); + setState(1485); oC_Variable(); - setState(1475); + setState(1487); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1474); + setState(1486); match(CypherParser::SP); } - setState(1477); + setState(1489); match(CypherParser::T__3); - setState(1479); + setState(1491); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1478); + setState(1490); match(CypherParser::SP); } - setState(1481); + setState(1493); match(CypherParser::T__12); - setState(1483); + setState(1495); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1482); + setState(1494); match(CypherParser::SP); } - setState(1485); + setState(1497); match(CypherParser::T__10); - setState(1487); + setState(1499); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1486); + setState(1498); match(CypherParser::SP); } - setState(1489); + setState(1501); oC_Where(); - setState(1491); + setState(1503); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1490); + setState(1502); match(CypherParser::SP); } - setState(1493); + setState(1505); match(CypherParser::T__2); break; } @@ -8745,7 +8792,7 @@ CypherParser::OC_LowerBoundContext* CypherParser::oC_LowerBound() { }); try { enterOuterAlt(_localctx, 1); - setState(1497); + setState(1509); match(CypherParser::DecimalInteger); } @@ -8787,7 +8834,7 @@ CypherParser::OC_UpperBoundContext* CypherParser::oC_UpperBound() { }); try { enterOuterAlt(_localctx, 1); - setState(1499); + setState(1511); match(CypherParser::DecimalInteger); } @@ -8829,7 +8876,7 @@ CypherParser::OC_LabelNameContext* CypherParser::oC_LabelName() { }); try { enterOuterAlt(_localctx, 1); - setState(1501); + setState(1513); oC_SchemaName(); } @@ -8871,7 +8918,7 @@ CypherParser::OC_RelTypeNameContext* CypherParser::oC_RelTypeName() { }); try { enterOuterAlt(_localctx, 1); - setState(1503); + setState(1515); oC_SchemaName(); } @@ -8913,7 +8960,7 @@ CypherParser::OC_ExpressionContext* CypherParser::oC_Expression() { }); try { enterOuterAlt(_localctx, 1); - setState(1505); + setState(1517); oC_OrExpression(); } @@ -8976,25 +9023,25 @@ CypherParser::OC_OrExpressionContext* CypherParser::oC_OrExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1507); + setState(1519); oC_XorExpression(); - setState(1514); + setState(1526); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 239, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 243, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1508); + setState(1520); match(CypherParser::SP); - setState(1509); + setState(1521); match(CypherParser::OR); - setState(1510); + setState(1522); match(CypherParser::SP); - setState(1511); + setState(1523); oC_XorExpression(); } - setState(1516); + setState(1528); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 239, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 243, _ctx); } } @@ -9057,25 +9104,25 @@ CypherParser::OC_XorExpressionContext* CypherParser::oC_XorExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1517); + setState(1529); oC_AndExpression(); - setState(1524); + setState(1536); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 240, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 244, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1518); + setState(1530); match(CypherParser::SP); - setState(1519); + setState(1531); match(CypherParser::XOR); - setState(1520); + setState(1532); match(CypherParser::SP); - setState(1521); + setState(1533); oC_AndExpression(); } - setState(1526); + setState(1538); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 240, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 244, _ctx); } } @@ -9138,25 +9185,25 @@ CypherParser::OC_AndExpressionContext* CypherParser::oC_AndExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1527); + setState(1539); oC_NotExpression(); - setState(1534); + setState(1546); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 241, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 245, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1528); + setState(1540); match(CypherParser::SP); - setState(1529); + setState(1541); match(CypherParser::AND); - setState(1530); + setState(1542); match(CypherParser::SP); - setState(1531); + setState(1543); oC_NotExpression(); } - setState(1536); + setState(1548); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 241, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 245, _ctx); } } @@ -9207,23 +9254,23 @@ CypherParser::OC_NotExpressionContext* CypherParser::oC_NotExpression() { }); try { enterOuterAlt(_localctx, 1); - setState(1541); + setState(1553); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::NOT) { - setState(1537); + setState(1549); match(CypherParser::NOT); - setState(1539); + setState(1551); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1538); + setState(1550); match(CypherParser::SP); } } - setState(1543); + setState(1555); oC_ComparisonExpression(); } @@ -9290,37 +9337,37 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress }); try { size_t alt; - setState(1593); + setState(1605); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 254, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 258, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1545); + setState(1557); kU_BitwiseOrOperatorExpression(); - setState(1555); + setState(1567); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 246, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 250, _ctx)) { case 1: { - setState(1547); + setState(1559); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1546); + setState(1558); match(CypherParser::SP); } - setState(1549); + setState(1561); kU_ComparisonOperator(); - setState(1551); + setState(1563); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1550); + setState(1562); match(CypherParser::SP); } - setState(1553); + setState(1565); kU_BitwiseOrOperatorExpression(); break; } @@ -9333,28 +9380,28 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress case 2: { enterOuterAlt(_localctx, 2); - setState(1557); + setState(1569); kU_BitwiseOrOperatorExpression(); - setState(1559); + setState(1571); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1558); + setState(1570); match(CypherParser::SP); } - setState(1561); + setState(1573); antlrcpp::downCast(_localctx)->invalid_not_equalToken = match(CypherParser::INVALID_NOT_EQUAL); - setState(1563); + setState(1575); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1562); + setState(1574); match(CypherParser::SP); } - setState(1565); + setState(1577); kU_BitwiseOrOperatorExpression(); notifyInvalidNotEqualOperator(antlrcpp::downCast(_localctx)->invalid_not_equalToken); break; @@ -9362,53 +9409,53 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress case 3: { enterOuterAlt(_localctx, 3); - setState(1569); + setState(1581); kU_BitwiseOrOperatorExpression(); - setState(1571); + setState(1583); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1570); + setState(1582); match(CypherParser::SP); } - setState(1573); + setState(1585); kU_ComparisonOperator(); - setState(1575); + setState(1587); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1574); + setState(1586); match(CypherParser::SP); } - setState(1577); + setState(1589); kU_BitwiseOrOperatorExpression(); - setState(1587); + setState(1599); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1579); + setState(1591); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1578); + setState(1590); match(CypherParser::SP); } - setState(1581); + setState(1593); kU_ComparisonOperator(); - setState(1583); + setState(1595); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1582); + setState(1594); match(CypherParser::SP); } - setState(1585); + setState(1597); kU_BitwiseOrOperatorExpression(); break; } @@ -9416,9 +9463,9 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress default: throw NoViableAltException(this); } - setState(1589); + setState(1601); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 253, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 257, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); notifyNonBinaryComparison(_localctx->start); break; @@ -9464,7 +9511,7 @@ CypherParser::KU_ComparisonOperatorContext* CypherParser::kU_ComparisonOperator( }); try { enterOuterAlt(_localctx, 1); - setState(1595); + setState(1607); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 507936) != 0))) { @@ -9528,37 +9575,37 @@ CypherParser::KU_BitwiseOrOperatorExpressionContext* CypherParser::kU_BitwiseOrO try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1597); + setState(1609); kU_BitwiseAndOperatorExpression(); - setState(1608); + setState(1620); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 257, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 261, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1599); + setState(1611); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1598); + setState(1610); match(CypherParser::SP); } - setState(1601); + setState(1613); match(CypherParser::T__10); - setState(1603); + setState(1615); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1602); + setState(1614); match(CypherParser::SP); } - setState(1605); + setState(1617); kU_BitwiseAndOperatorExpression(); } - setState(1610); + setState(1622); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 257, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 261, _ctx); } } @@ -9614,37 +9661,37 @@ CypherParser::KU_BitwiseAndOperatorExpressionContext* CypherParser::kU_BitwiseAn try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1611); + setState(1623); kU_BitShiftOperatorExpression(); - setState(1622); + setState(1634); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 260, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 264, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1613); + setState(1625); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1612); + setState(1624); match(CypherParser::SP); } - setState(1615); + setState(1627); match(CypherParser::T__18); - setState(1617); + setState(1629); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1616); + setState(1628); match(CypherParser::SP); } - setState(1619); + setState(1631); kU_BitShiftOperatorExpression(); } - setState(1624); + setState(1636); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 260, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 264, _ctx); } } @@ -9708,37 +9755,37 @@ CypherParser::KU_BitShiftOperatorExpressionContext* CypherParser::kU_BitShiftOpe try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1625); - oC_AddOrSubtractExpression(); setState(1637); + oC_AddOrSubtractExpression(); + setState(1649); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 263, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 267, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1627); + setState(1639); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1626); + setState(1638); match(CypherParser::SP); } - setState(1629); + setState(1641); kU_BitShiftOperator(); - setState(1631); + setState(1643); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1630); + setState(1642); match(CypherParser::SP); } - setState(1633); + setState(1645); oC_AddOrSubtractExpression(); } - setState(1639); + setState(1651); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 263, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 267, _ctx); } } @@ -9777,7 +9824,7 @@ CypherParser::KU_BitShiftOperatorContext* CypherParser::kU_BitShiftOperator() { }); try { enterOuterAlt(_localctx, 1); - setState(1640); + setState(1652); _la = _input->LA(1); if (!(_la == CypherParser::T__19 @@ -9850,37 +9897,37 @@ CypherParser::OC_AddOrSubtractExpressionContext* CypherParser::oC_AddOrSubtractE try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1642); - oC_MultiplyDivideModuloExpression(); setState(1654); + oC_MultiplyDivideModuloExpression(); + setState(1666); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 266, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 270, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1644); + setState(1656); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1643); + setState(1655); match(CypherParser::SP); } - setState(1646); + setState(1658); kU_AddOrSubtractOperator(); - setState(1648); + setState(1660); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1647); + setState(1659); match(CypherParser::SP); } - setState(1650); + setState(1662); oC_MultiplyDivideModuloExpression(); } - setState(1656); + setState(1668); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 266, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 270, _ctx); } } @@ -9923,7 +9970,7 @@ CypherParser::KU_AddOrSubtractOperatorContext* CypherParser::kU_AddOrSubtractOpe }); try { enterOuterAlt(_localctx, 1); - setState(1657); + setState(1669); _la = _input->LA(1); if (!(_la == CypherParser::T__21 || _la == CypherParser::MINUS)) { _errHandler->recoverInline(this); @@ -9994,37 +10041,37 @@ CypherParser::OC_MultiplyDivideModuloExpressionContext* CypherParser::oC_Multipl try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1659); - oC_PowerOfExpression(); setState(1671); + oC_PowerOfExpression(); + setState(1683); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 269, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 273, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1661); + setState(1673); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1660); + setState(1672); match(CypherParser::SP); } - setState(1663); + setState(1675); kU_MultiplyDivideModuloOperator(); - setState(1665); + setState(1677); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1664); + setState(1676); match(CypherParser::SP); } - setState(1667); + setState(1679); oC_PowerOfExpression(); } - setState(1673); + setState(1685); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 269, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 273, _ctx); } } @@ -10067,7 +10114,7 @@ CypherParser::KU_MultiplyDivideModuloOperatorContext* CypherParser::kU_MultiplyD }); try { enterOuterAlt(_localctx, 1); - setState(1674); + setState(1686); _la = _input->LA(1); if (!(_la == CypherParser::T__22 @@ -10132,37 +10179,37 @@ CypherParser::OC_PowerOfExpressionContext* CypherParser::oC_PowerOfExpression() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1676); + setState(1688); oC_UnaryAddSubtractOrFactorialExpression(); - setState(1687); + setState(1699); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 272, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 276, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1678); + setState(1690); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1677); + setState(1689); match(CypherParser::SP); } - setState(1680); + setState(1692); match(CypherParser::T__24); - setState(1682); + setState(1694); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1681); + setState(1693); match(CypherParser::SP); } - setState(1684); + setState(1696); oC_UnaryAddSubtractOrFactorialExpression(); } - setState(1689); + setState(1701); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 272, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 276, _ctx); } } @@ -10221,38 +10268,38 @@ CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext* CypherParser::oC_ }); try { enterOuterAlt(_localctx, 1); - setState(1694); + setState(1706); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::MINUS) { - setState(1690); + setState(1702); match(CypherParser::MINUS); - setState(1692); + setState(1704); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1691); + setState(1703); match(CypherParser::SP); } } - setState(1696); + setState(1708); oC_StringListNullOperatorExpression(); - setState(1701); + setState(1713); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 276, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 280, _ctx)) { case 1: { - setState(1698); + setState(1710); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1697); + setState(1709); match(CypherParser::SP); } - setState(1700); + setState(1712); match(CypherParser::FACTORIAL); break; } @@ -10317,26 +10364,26 @@ CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_Strin }); try { enterOuterAlt(_localctx, 1); - setState(1703); + setState(1715); oC_PropertyOrLabelsExpression(); - setState(1711); + setState(1723); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 278, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 282, _ctx)) { case 1: { - setState(1704); + setState(1716); oC_StringOperatorExpression(); break; } case 2: { - setState(1706); + setState(1718); _errHandler->sync(this); _la = _input->LA(1); do { - setState(1705); + setState(1717); oC_ListOperatorExpression(); - setState(1708); + setState(1720); _errHandler->sync(this); _la = _input->LA(1); } while (_la == CypherParser::T__6); @@ -10344,7 +10391,7 @@ CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_Strin } case 3: { - setState(1710); + setState(1722); oC_NullOperatorExpression(); break; } @@ -10395,19 +10442,19 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp exitRule(); }); try { - setState(1715); + setState(1727); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 279, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 283, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1713); + setState(1725); kU_ListExtractOperatorExpression(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1714); + setState(1726); kU_ListSliceOperatorExpression(); break; } @@ -10455,11 +10502,11 @@ CypherParser::KU_ListExtractOperatorExpressionContext* CypherParser::kU_ListExtr }); try { enterOuterAlt(_localctx, 1); - setState(1717); + setState(1729); match(CypherParser::T__6); - setState(1718); + setState(1730); oC_Expression(); - setState(1719); + setState(1731); match(CypherParser::T__7); } @@ -10506,31 +10553,31 @@ CypherParser::KU_ListSliceOperatorExpressionContext* CypherParser::kU_ListSliceO }); try { enterOuterAlt(_localctx, 1); - setState(1721); + setState(1733); match(CypherParser::T__6); - setState(1723); + setState(1735); _errHandler->sync(this); _la = _input->LA(1); if ((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 562950221857412) != 0) || ((((_la - 108) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 108)) & 1276780293) != 0)) { - setState(1722); + setState(1734); oC_Expression(); } - setState(1725); + setState(1737); match(CypherParser::T__5); - setState(1727); + setState(1739); _errHandler->sync(this); _la = _input->LA(1); if ((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 562950221857412) != 0) || ((((_la - 108) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 108)) & 1276780293) != 0)) { - setState(1726); + setState(1738); oC_Expression(); } - setState(1729); + setState(1741); match(CypherParser::T__7); } @@ -10601,43 +10648,43 @@ CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperato }); try { enterOuterAlt(_localctx, 1); - setState(1742); + setState(1754); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 282, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 286, _ctx)) { case 1: { - setState(1731); + setState(1743); oC_RegularExpression(); break; } case 2: { - setState(1732); + setState(1744); match(CypherParser::SP); - setState(1733); + setState(1745); match(CypherParser::STARTS); - setState(1734); + setState(1746); match(CypherParser::SP); - setState(1735); + setState(1747); match(CypherParser::WITH); break; } case 3: { - setState(1736); + setState(1748); match(CypherParser::SP); - setState(1737); + setState(1749); match(CypherParser::ENDS); - setState(1738); + setState(1750); match(CypherParser::SP); - setState(1739); + setState(1751); match(CypherParser::WITH); break; } case 4: { - setState(1740); + setState(1752); match(CypherParser::SP); - setState(1741); + setState(1753); match(CypherParser::CONTAINS); break; } @@ -10645,15 +10692,15 @@ CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperato default: break; } - setState(1745); + setState(1757); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1744); + setState(1756); match(CypherParser::SP); } - setState(1747); + setState(1759); oC_PropertyOrLabelsExpression(); } @@ -10696,15 +10743,15 @@ CypherParser::OC_RegularExpressionContext* CypherParser::oC_RegularExpression() }); try { enterOuterAlt(_localctx, 1); - setState(1750); + setState(1762); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1749); + setState(1761); match(CypherParser::SP); } - setState(1752); + setState(1764); match(CypherParser::T__25); } @@ -10761,35 +10808,35 @@ CypherParser::OC_NullOperatorExpressionContext* CypherParser::oC_NullOperatorExp exitRule(); }); try { - setState(1764); + setState(1776); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 285, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 289, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1754); + setState(1766); match(CypherParser::SP); - setState(1755); + setState(1767); match(CypherParser::IS); - setState(1756); + setState(1768); match(CypherParser::SP); - setState(1757); + setState(1769); match(CypherParser::NULL_); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1758); + setState(1770); match(CypherParser::SP); - setState(1759); + setState(1771); match(CypherParser::IS); - setState(1760); + setState(1772); match(CypherParser::SP); - setState(1761); + setState(1773); match(CypherParser::NOT); - setState(1762); + setState(1774); match(CypherParser::SP); - setState(1763); + setState(1775); match(CypherParser::NULL_); break; } @@ -10855,27 +10902,27 @@ CypherParser::OC_PropertyOrLabelsExpressionContext* CypherParser::oC_PropertyOrL try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1766); + setState(1778); oC_Atom(); - setState(1773); + setState(1785); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 287, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 291, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1768); + setState(1780); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1767); + setState(1779); match(CypherParser::SP); } - setState(1770); + setState(1782); oC_PropertyLookup(); } - setState(1775); + setState(1787); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 287, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 291, _ctx); } } @@ -10940,54 +10987,54 @@ CypherParser::OC_AtomContext* CypherParser::oC_Atom() { exitRule(); }); try { - setState(1783); + setState(1795); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 288, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 292, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1776); + setState(1788); oC_Literal(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1777); + setState(1789); oC_Parameter(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1778); + setState(1790); oC_CaseExpression(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(1779); + setState(1791); oC_ParenthesizedExpression(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(1780); + setState(1792); oC_FunctionInvocation(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(1781); + setState(1793); oC_ExistentialSubquery(); break; } case 7: { enterOuterAlt(_localctx, 7); - setState(1782); + setState(1794); oC_Variable(); break; } @@ -11054,20 +11101,20 @@ CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { exitRule(); }); try { - setState(1791); + setState(1803); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::DecimalInteger: case CypherParser::RegularDecimalReal: { enterOuterAlt(_localctx, 1); - setState(1785); + setState(1797); oC_NumberLiteral(); break; } case CypherParser::StringLiteral: { enterOuterAlt(_localctx, 2); - setState(1786); + setState(1798); match(CypherParser::StringLiteral); break; } @@ -11075,28 +11122,28 @@ CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { case CypherParser::TRUE: case CypherParser::FALSE: { enterOuterAlt(_localctx, 3); - setState(1787); + setState(1799); oC_BooleanLiteral(); break; } case CypherParser::NULL_: { enterOuterAlt(_localctx, 4); - setState(1788); + setState(1800); match(CypherParser::NULL_); break; } case CypherParser::T__6: { enterOuterAlt(_localctx, 5); - setState(1789); + setState(1801); oC_ListLiteral(); break; } case CypherParser::T__8: { enterOuterAlt(_localctx, 6); - setState(1790); + setState(1802); kU_StructLiteral(); break; } @@ -11149,7 +11196,7 @@ CypherParser::OC_BooleanLiteralContext* CypherParser::oC_BooleanLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1793); + setState(1805); _la = _input->LA(1); if (!(_la == CypherParser::TRUE @@ -11213,63 +11260,63 @@ CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1795); + setState(1807); match(CypherParser::T__6); - setState(1797); + setState(1809); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1796); + setState(1808); match(CypherParser::SP); } - setState(1816); + setState(1828); _errHandler->sync(this); _la = _input->LA(1); if ((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 562950221857412) != 0) || ((((_la - 108) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 108)) & 1276780293) != 0)) { - setState(1799); + setState(1811); oC_Expression(); - setState(1801); + setState(1813); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1800); + setState(1812); match(CypherParser::SP); } - setState(1813); + setState(1825); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1803); + setState(1815); match(CypherParser::T__3); - setState(1805); + setState(1817); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1804); + setState(1816); match(CypherParser::SP); } - setState(1807); + setState(1819); oC_Expression(); - setState(1809); + setState(1821); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1808); + setState(1820); match(CypherParser::SP); } - setState(1815); + setState(1827); _errHandler->sync(this); _la = _input->LA(1); } } - setState(1818); + setState(1830); match(CypherParser::T__7); } @@ -11324,55 +11371,55 @@ CypherParser::KU_StructLiteralContext* CypherParser::kU_StructLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(1820); + setState(1832); match(CypherParser::T__8); - setState(1822); + setState(1834); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1821); + setState(1833); match(CypherParser::SP); } - setState(1824); + setState(1836); kU_StructField(); - setState(1826); + setState(1838); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1825); + setState(1837); match(CypherParser::SP); } - setState(1838); + setState(1850); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1828); + setState(1840); match(CypherParser::T__3); - setState(1830); + setState(1842); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1829); + setState(1841); match(CypherParser::SP); } - setState(1832); + setState(1844); kU_StructField(); - setState(1834); + setState(1846); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1833); + setState(1845); match(CypherParser::SP); } - setState(1840); + setState(1852); _errHandler->sync(this); _la = _input->LA(1); } - setState(1841); + setState(1853); match(CypherParser::T__9); } @@ -11431,20 +11478,20 @@ CypherParser::KU_StructFieldContext* CypherParser::kU_StructField() { }); try { enterOuterAlt(_localctx, 1); - setState(1845); + setState(1857); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(1843); + setState(1855); oC_SymbolicName(); break; } case CypherParser::StringLiteral: { - setState(1844); + setState(1856); match(CypherParser::StringLiteral); break; } @@ -11452,25 +11499,25 @@ CypherParser::KU_StructFieldContext* CypherParser::kU_StructField() { default: throw NoViableAltException(this); } - setState(1848); + setState(1860); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1847); + setState(1859); match(CypherParser::SP); } - setState(1850); + setState(1862); match(CypherParser::T__5); - setState(1852); + setState(1864); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1851); + setState(1863); match(CypherParser::SP); } - setState(1854); + setState(1866); oC_Expression(); } @@ -11521,27 +11568,27 @@ CypherParser::OC_ParenthesizedExpressionContext* CypherParser::oC_ParenthesizedE }); try { enterOuterAlt(_localctx, 1); - setState(1856); + setState(1868); match(CypherParser::T__1); - setState(1858); + setState(1870); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1857); + setState(1869); match(CypherParser::SP); } - setState(1860); + setState(1872); oC_Expression(); - setState(1862); + setState(1874); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1861); + setState(1873); match(CypherParser::SP); } - setState(1864); + setState(1876); match(CypherParser::T__2); } @@ -11607,131 +11654,131 @@ CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation( exitRule(); }); try { - setState(1915); + setState(1927); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 318, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 322, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1866); + setState(1878); oC_FunctionName(); - setState(1868); + setState(1880); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1867); + setState(1879); match(CypherParser::SP); } - setState(1870); + setState(1882); match(CypherParser::T__1); - setState(1872); + setState(1884); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1871); + setState(1883); match(CypherParser::SP); } - setState(1874); + setState(1886); match(CypherParser::STAR); - setState(1876); + setState(1888); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1875); + setState(1887); match(CypherParser::SP); } - setState(1878); + setState(1890); match(CypherParser::T__2); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1880); + setState(1892); oC_FunctionName(); - setState(1882); + setState(1894); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1881); + setState(1893); match(CypherParser::SP); } - setState(1884); + setState(1896); match(CypherParser::T__1); - setState(1886); + setState(1898); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1885); + setState(1897); match(CypherParser::SP); } - setState(1892); + setState(1904); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DISTINCT) { - setState(1888); + setState(1900); match(CypherParser::DISTINCT); - setState(1890); + setState(1902); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1889); + setState(1901); match(CypherParser::SP); } } - setState(1911); + setState(1923); _errHandler->sync(this); _la = _input->LA(1); if ((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 562950221857412) != 0) || ((((_la - 108) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 108)) & 1276780293) != 0)) { - setState(1894); + setState(1906); kU_FunctionParameter(); - setState(1896); + setState(1908); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1895); + setState(1907); match(CypherParser::SP); } - setState(1908); + setState(1920); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1898); + setState(1910); match(CypherParser::T__3); - setState(1900); + setState(1912); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1899); + setState(1911); match(CypherParser::SP); } - setState(1902); + setState(1914); kU_FunctionParameter(); - setState(1904); + setState(1916); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1903); + setState(1915); match(CypherParser::SP); } - setState(1910); + setState(1922); _errHandler->sync(this); _la = _input->LA(1); } } - setState(1913); + setState(1925); match(CypherParser::T__2); break; } @@ -11779,7 +11826,7 @@ CypherParser::OC_FunctionNameContext* CypherParser::oC_FunctionName() { }); try { enterOuterAlt(_localctx, 1); - setState(1917); + setState(1929); oC_SymbolicName(); } @@ -11834,31 +11881,31 @@ CypherParser::KU_FunctionParameterContext* CypherParser::kU_FunctionParameter() }); try { enterOuterAlt(_localctx, 1); - setState(1928); + setState(1940); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 321, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 325, _ctx)) { case 1: { - setState(1919); + setState(1931); oC_SymbolicName(); - setState(1921); + setState(1933); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1920); + setState(1932); match(CypherParser::SP); } - setState(1923); + setState(1935); match(CypherParser::T__5); - setState(1924); + setState(1936); match(CypherParser::T__4); - setState(1926); + setState(1938); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1925); + setState(1937); match(CypherParser::SP); } break; @@ -11867,7 +11914,7 @@ CypherParser::KU_FunctionParameterContext* CypherParser::kU_FunctionParameter() default: break; } - setState(1930); + setState(1942); oC_Expression(); } @@ -11930,52 +11977,52 @@ CypherParser::OC_ExistentialSubqueryContext* CypherParser::oC_ExistentialSubquer }); try { enterOuterAlt(_localctx, 1); - setState(1932); + setState(1944); match(CypherParser::EXISTS); - setState(1934); + setState(1946); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1933); + setState(1945); match(CypherParser::SP); } - setState(1936); + setState(1948); match(CypherParser::T__8); - setState(1938); + setState(1950); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1937); + setState(1949); match(CypherParser::SP); } - setState(1940); + setState(1952); match(CypherParser::MATCH); - setState(1942); + setState(1954); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1941); + setState(1953); match(CypherParser::SP); } - setState(1944); + setState(1956); oC_Pattern(); - setState(1949); + setState(1961); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 326, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 330, _ctx)) { case 1: { - setState(1946); + setState(1958); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1945); + setState(1957); match(CypherParser::SP); } - setState(1948); + setState(1960); oC_Where(); break; } @@ -11983,15 +12030,15 @@ CypherParser::OC_ExistentialSubqueryContext* CypherParser::oC_ExistentialSubquer default: break; } - setState(1952); + setState(1964); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1951); + setState(1963); match(CypherParser::SP); } - setState(1954); + setState(1966); match(CypherParser::T__9); } @@ -12042,30 +12089,30 @@ CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { }); try { enterOuterAlt(_localctx, 1); - setState(1956); + setState(1968); match(CypherParser::T__26); - setState(1958); + setState(1970); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1957); + setState(1969); match(CypherParser::SP); } - setState(1962); + setState(1974); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(1960); + setState(1972); oC_PropertyKeyName(); break; } case CypherParser::STAR: { - setState(1961); + setState(1973); match(CypherParser::STAR); break; } @@ -12147,27 +12194,27 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1986); + setState(1998); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 335, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 339, _ctx)) { case 1: { - setState(1964); + setState(1976); match(CypherParser::CASE); - setState(1969); + setState(1981); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1966); + setState(1978); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1965); + setState(1977); match(CypherParser::SP); } - setState(1968); + setState(1980); oC_CaseAlternative(); break; } @@ -12175,41 +12222,41 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: throw NoViableAltException(this); } - setState(1971); + setState(1983); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 331, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 335, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } case 2: { - setState(1973); + setState(1985); match(CypherParser::CASE); - setState(1975); + setState(1987); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1974); + setState(1986); match(CypherParser::SP); } - setState(1977); + setState(1989); oC_Expression(); - setState(1982); + setState(1994); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1979); + setState(1991); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1978); + setState(1990); match(CypherParser::SP); } - setState(1981); + setState(1993); oC_CaseAlternative(); break; } @@ -12217,9 +12264,9 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: throw NoViableAltException(this); } - setState(1984); + setState(1996); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 334, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 338, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } @@ -12227,30 +12274,30 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: break; } - setState(1996); + setState(2008); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 338, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 342, _ctx)) { case 1: { - setState(1989); + setState(2001); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1988); + setState(2000); match(CypherParser::SP); } - setState(1991); + setState(2003); match(CypherParser::ELSE); - setState(1993); + setState(2005); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1992); + setState(2004); match(CypherParser::SP); } - setState(1995); + setState(2007); oC_Expression(); break; } @@ -12258,15 +12305,15 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: break; } - setState(1999); + setState(2011); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1998); + setState(2010); match(CypherParser::SP); } - setState(2001); + setState(2013); match(CypherParser::END); } @@ -12329,37 +12376,37 @@ CypherParser::OC_CaseAlternativeContext* CypherParser::oC_CaseAlternative() { }); try { enterOuterAlt(_localctx, 1); - setState(2003); + setState(2015); match(CypherParser::WHEN); - setState(2005); + setState(2017); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2004); + setState(2016); match(CypherParser::SP); } - setState(2007); + setState(2019); oC_Expression(); - setState(2009); + setState(2021); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2008); + setState(2020); match(CypherParser::SP); } - setState(2011); + setState(2023); match(CypherParser::THEN); - setState(2013); + setState(2025); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2012); + setState(2024); match(CypherParser::SP); } - setState(2015); + setState(2027); oC_Expression(); } @@ -12401,7 +12448,7 @@ CypherParser::OC_VariableContext* CypherParser::oC_Variable() { }); try { enterOuterAlt(_localctx, 1); - setState(2017); + setState(2029); oC_SymbolicName(); } @@ -12446,19 +12493,19 @@ CypherParser::OC_NumberLiteralContext* CypherParser::oC_NumberLiteral() { exitRule(); }); try { - setState(2021); + setState(2033); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::RegularDecimalReal: { enterOuterAlt(_localctx, 1); - setState(2019); + setState(2031); oC_DoubleLiteral(); break; } case CypherParser::DecimalInteger: { enterOuterAlt(_localctx, 2); - setState(2020); + setState(2032); oC_IntegerLiteral(); break; } @@ -12510,22 +12557,22 @@ CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { }); try { enterOuterAlt(_localctx, 1); - setState(2023); + setState(2035); match(CypherParser::T__27); - setState(2026); + setState(2038); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::COMMENT: case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(2024); + setState(2036); oC_SymbolicName(); break; } case CypherParser::DecimalInteger: { - setState(2025); + setState(2037); match(CypherParser::DecimalInteger); break; } @@ -12582,17 +12629,17 @@ CypherParser::OC_PropertyExpressionContext* CypherParser::oC_PropertyExpression( }); try { enterOuterAlt(_localctx, 1); - setState(2028); + setState(2040); oC_Atom(); - setState(2030); + setState(2042); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2029); + setState(2041); match(CypherParser::SP); } - setState(2032); + setState(2044); oC_PropertyLookup(); } @@ -12634,7 +12681,7 @@ CypherParser::OC_PropertyKeyNameContext* CypherParser::oC_PropertyKeyName() { }); try { enterOuterAlt(_localctx, 1); - setState(2034); + setState(2046); oC_SchemaName(); } @@ -12676,7 +12723,7 @@ CypherParser::OC_IntegerLiteralContext* CypherParser::oC_IntegerLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2036); + setState(2048); match(CypherParser::DecimalInteger); } @@ -12718,7 +12765,7 @@ CypherParser::OC_DoubleLiteralContext* CypherParser::oC_DoubleLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2038); + setState(2050); match(CypherParser::RegularDecimalReal); } @@ -12760,7 +12807,7 @@ CypherParser::OC_SchemaNameContext* CypherParser::oC_SchemaName() { }); try { enterOuterAlt(_localctx, 1); - setState(2040); + setState(2052); oC_SymbolicName(); } @@ -12813,19 +12860,19 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { exitRule(); }); try { - setState(2047); + setState(2059); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::UnescapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(2042); + setState(2054); match(CypherParser::UnescapedSymbolicName); break; } case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 2); - setState(2043); + setState(2055); antlrcpp::downCast(_localctx)->escapedsymbolicnameToken = match(CypherParser::EscapedSymbolicName); if ((antlrcpp::downCast(_localctx)->escapedsymbolicnameToken != nullptr ? antlrcpp::downCast(_localctx)->escapedsymbolicnameToken->getText() : "") == "``") { notifyEmptyToken(antlrcpp::downCast(_localctx)->escapedsymbolicnameToken); } break; @@ -12833,14 +12880,14 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { case CypherParser::HexLetter: { enterOuterAlt(_localctx, 3); - setState(2045); + setState(2057); match(CypherParser::HexLetter); break; } case CypherParser::COMMENT: { enterOuterAlt(_localctx, 4); - setState(2046); + setState(2058); kU_NonReservedKeywords(); break; } @@ -12888,7 +12935,7 @@ CypherParser::KU_NonReservedKeywordsContext* CypherParser::kU_NonReservedKeyword }); try { enterOuterAlt(_localctx, 1); - setState(2049); + setState(2061); match(CypherParser::COMMENT); } @@ -12927,7 +12974,7 @@ CypherParser::OC_LeftArrowHeadContext* CypherParser::oC_LeftArrowHead() { }); try { enterOuterAlt(_localctx, 1); - setState(2051); + setState(2063); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 8053096448) != 0))) { @@ -12974,7 +13021,7 @@ CypherParser::OC_RightArrowHeadContext* CypherParser::oC_RightArrowHead() { }); try { enterOuterAlt(_localctx, 1); - setState(2053); + setState(2065); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 128849149952) != 0))) { @@ -13025,7 +13072,7 @@ CypherParser::OC_DashContext* CypherParser::oC_Dash() { }); try { enterOuterAlt(_localctx, 1); - setState(2055); + setState(2067); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 281337537757184) != 0) || _la == CypherParser::MINUS)) { diff --git a/third_party/antlr4_cypher/include/cypher_parser.h b/third_party/antlr4_cypher/include/cypher_parser.h index 3b3702b91d..3c7c45678f 100644 --- a/third_party/antlr4_cypher/include/cypher_parser.h +++ b/third_party/antlr4_cypher/include/cypher_parser.h @@ -942,6 +942,7 @@ class CypherParser : public antlr4::Parser { antlr4::tree::TerminalNode *FROM(); KU_FilePathsContext *kU_FilePaths(); KU_ParsingOptionsContext *kU_ParsingOptions(); + OC_WhereContext *oC_Where(); };