diff --git a/src/include/duckdb/parser/query_node/select_node.hpp b/src/include/duckdb/parser/query_node/select_node.hpp index d91356c8afc..558993e3844 100644 --- a/src/include/duckdb/parser/query_node/select_node.hpp +++ b/src/include/duckdb/parser/query_node/select_node.hpp @@ -39,6 +39,8 @@ class SelectNode : public QueryNode { GroupByNode groups; //! HAVING clause unique_ptr having; + //! QUALIFY clause + unique_ptr qualify; //! Aggregate handling during binding AggregateHandling aggregate_handling; //! The SAMPLE clause diff --git a/src/include/duckdb/planner/expression_binder/qualify_binder.hpp b/src/include/duckdb/planner/expression_binder/qualify_binder.hpp new file mode 100644 index 00000000000..8fca9a78412 --- /dev/null +++ b/src/include/duckdb/planner/expression_binder/qualify_binder.hpp @@ -0,0 +1,32 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/planner/expression_binder/qualify_binder.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/planner/expression_binder/select_binder.hpp" +#include "duckdb/planner/expression_binder/column_alias_binder.hpp" + +namespace duckdb { + +//! The QUALIFY binder is responsible for binding an expression within the QUALIFY clause of a SQL statement +class QualifyBinder : public SelectBinder { +public: + QualifyBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info, + unordered_map &alias_map); + +protected: + BindResult BindExpression(unique_ptr *expr_ptr, idx_t depth, + bool root_expression = false) override; + +private: + BindResult BindColumnRef(unique_ptr *expr_ptr, idx_t depth, bool root_expression); + + ColumnAliasBinder column_alias_binder; +}; + +} // namespace duckdb diff --git a/src/include/duckdb/planner/query_node/bound_select_node.hpp b/src/include/duckdb/planner/query_node/bound_select_node.hpp index 1320ce23efd..ab31fe96fe4 100644 --- a/src/include/duckdb/planner/query_node/bound_select_node.hpp +++ b/src/include/duckdb/planner/query_node/bound_select_node.hpp @@ -45,6 +45,8 @@ class BoundSelectNode : public BoundQueryNode { BoundGroupByNode groups; //! HAVING clause unique_ptr having; + //! QUALIFY clause + unique_ptr qualify; //! SAMPLE clause unique_ptr sample_options; diff --git a/src/parser/parsed_expression_iterator.cpp b/src/parser/parsed_expression_iterator.cpp index 69c79ac041e..521a484490e 100644 --- a/src/parser/parsed_expression_iterator.cpp +++ b/src/parser/parsed_expression_iterator.cpp @@ -209,6 +209,9 @@ void ParsedExpressionIterator::EnumerateQueryNodeChildren( if (sel_node.having) { callback(sel_node.having); } + if (sel_node.qualify) { + callback(sel_node.qualify); + } EnumerateTableRefChildren(*sel_node.from_table.get(), callback); break; diff --git a/src/parser/query_node/select_node.cpp b/src/parser/query_node/select_node.cpp index aa3303506d9..466b2820ac4 100644 --- a/src/parser/query_node/select_node.cpp +++ b/src/parser/query_node/select_node.cpp @@ -45,6 +45,10 @@ bool SelectNode::Equals(const QueryNode *other_p) const { if (!BaseExpression::Equals(having.get(), other->having.get())) { return false; } + // QUALIFY + if (!BaseExpression::Equals(qualify.get(), other->qualify.get())) { + return false; + } return true; } @@ -61,6 +65,7 @@ unique_ptr SelectNode::Copy() { } result->groups.grouping_sets = groups.grouping_sets; result->having = having ? having->Copy() : nullptr; + result->qualify = qualify ? qualify->Copy() : nullptr; result->sample = sample ? sample->Copy() : nullptr; this->CopyProperties(*result); return move(result); @@ -86,6 +91,8 @@ void SelectNode::Serialize(Serializer &serializer) { // having / sample serializer.WriteOptional(having); serializer.WriteOptional(sample); + // qualify + serializer.WriteOptional(qualify); } unique_ptr SelectNode::Deserialize(Deserializer &source) { @@ -110,6 +117,8 @@ unique_ptr SelectNode::Deserialize(Deserializer &source) { // having / sample result->having = source.ReadOptional(); result->sample = source.ReadOptional(); + // qualify + result->qualify = source.ReadOptional(); return move(result); } diff --git a/src/parser/transform/statement/transform_select_node.cpp b/src/parser/transform/statement/transform_select_node.cpp index adcc8ae9aba..b819b1e68a5 100644 --- a/src/parser/transform/statement/transform_select_node.cpp +++ b/src/parser/transform/statement/transform_select_node.cpp @@ -69,6 +69,8 @@ unique_ptr Transformer::TransformSelectNode(duckdb_libpgquery::PGSele TransformGroupBy(stmt->groupClause, result->groups); // having result->having = TransformExpression(stmt->havingClause); + // qualify + result->qualify = TransformExpression(stmt->qualifyClause); // sample result->sample = TransformSampleOptions(stmt->sampleOptions); break; diff --git a/src/planner/binder/query_node/bind_select_node.cpp b/src/planner/binder/query_node/bind_select_node.cpp index b17ae80eca3..b30369eaa62 100644 --- a/src/planner/binder/query_node/bind_select_node.cpp +++ b/src/planner/binder/query_node/bind_select_node.cpp @@ -13,6 +13,7 @@ #include "duckdb/planner/expression_binder/constant_binder.hpp" #include "duckdb/planner/expression_binder/group_binder.hpp" #include "duckdb/planner/expression_binder/having_binder.hpp" +#include "duckdb/planner/expression_binder/qualify_binder.hpp" #include "duckdb/planner/expression_binder/order_binder.hpp" #include "duckdb/planner/expression_binder/select_binder.hpp" #include "duckdb/planner/expression_binder/where_binder.hpp" @@ -309,6 +310,13 @@ unique_ptr Binder::BindNode(SelectNode &statement) { result->having = having_binder.Bind(statement.having); } + // bind the QUALIFY clause, if any + if (statement.qualify) { + QualifyBinder qualify_binder(*this, context, *result, info, alias_map); + ExpressionBinder::QualifyColumnNames(*this, statement.qualify); + result->qualify = qualify_binder.Bind(statement.qualify); + } + // after that, we bind to the SELECT list SelectBinder select_binder(*this, context, *result, info); vector internal_sql_types; @@ -356,6 +364,12 @@ unique_ptr Binder::BindNode(SelectNode &statement) { } } + // QUALIFY clause requires at least one window function to be specified in at least one of the SELECT column list or + // the filter predicate of the QUALIFY clause + if (statement.qualify && result->windows.empty()) { + throw BinderException("at least one window function must appear in the SELECT column or QUALIFY clause"); + } + // now that the SELECT list is bound, we set the types of DISTINCT/ORDER BY expressions BindModifierTypes(*result, internal_sql_types, result->projection_index); return move(result); diff --git a/src/planner/binder/query_node/plan_select_node.cpp b/src/planner/binder/query_node/plan_select_node.cpp index 3ceb4e840df..7cfacbe71cc 100644 --- a/src/planner/binder/query_node/plan_select_node.cpp +++ b/src/planner/binder/query_node/plan_select_node.cpp @@ -80,6 +80,14 @@ unique_ptr Binder::CreatePlan(BoundSelectNode &statement) { root = move(win); } + if (statement.qualify) { + PlanSubqueries(&statement.qualify, &root); + auto qualify = make_unique(move(statement.qualify)); + + qualify->AddChild(move(root)); + root = move(qualify); + } + if (!statement.unnests.empty()) { auto unnest = make_unique(statement.unnest_index); unnest->expressions = move(statement.unnests); diff --git a/src/planner/expression_binder/CMakeLists.txt b/src/planner/expression_binder/CMakeLists.txt index 0e9679eb5ce..02fb8e04bca 100644 --- a/src/planner/expression_binder/CMakeLists.txt +++ b/src/planner/expression_binder/CMakeLists.txt @@ -8,6 +8,7 @@ add_library_unity( constant_binder.cpp group_binder.cpp having_binder.cpp + qualify_binder.cpp index_binder.cpp insert_binder.cpp order_binder.cpp diff --git a/src/planner/expression_binder/qualify_binder.cpp b/src/planner/expression_binder/qualify_binder.cpp new file mode 100644 index 00000000000..6c51e7e2e13 --- /dev/null +++ b/src/planner/expression_binder/qualify_binder.cpp @@ -0,0 +1,50 @@ +#include "duckdb/planner/expression_binder/qualify_binder.hpp" + +#include "duckdb/parser/expression/columnref_expression.hpp" +#include "duckdb/planner/binder.hpp" +#include "duckdb/planner/expression_binder/aggregate_binder.hpp" +#include "duckdb/common/string_util.hpp" +#include "duckdb/planner/query_node/bound_select_node.hpp" + +namespace duckdb { + +QualifyBinder::QualifyBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info, + unordered_map &alias_map) + : SelectBinder(binder, context, node, info), column_alias_binder(node, alias_map) { + target_type = LogicalType(LogicalTypeId::BOOLEAN); +} + +BindResult QualifyBinder::BindColumnRef(unique_ptr *expr_ptr, idx_t depth, bool root_expression) { + auto &expr = (ColumnRefExpression &)**expr_ptr; + auto result = duckdb::SelectBinder::BindExpression(expr_ptr, depth); + if (!result.HasError()) { + return result; + } + + auto alias_result = column_alias_binder.BindAlias(*this, expr, depth, root_expression); + if (!alias_result.HasError()) { + return alias_result; + } + + return BindResult(StringUtil::Format("Referenced column %s not found in FROM clause and can't find in alias map.", + expr.ToString())); +} + +BindResult QualifyBinder::BindExpression(unique_ptr *expr_ptr, idx_t depth, bool root_expression) { + auto &expr = **expr_ptr; + // check if the expression binds to one of the groups + auto group_index = TryBindGroup(expr, depth); + if (group_index != DConstants::INVALID_INDEX) { + return BindGroup(expr, depth, group_index); + } + switch (expr.expression_class) { + case ExpressionClass::WINDOW: + return BindWindow((WindowExpression &)expr, depth); + case ExpressionClass::COLUMN_REF: + return BindColumnRef(expr_ptr, depth, root_expression); + default: + return duckdb::SelectBinder::BindExpression(expr_ptr, depth); + } +} + +} // namespace duckdb diff --git a/src/storage/storage_info.cpp b/src/storage/storage_info.cpp index 0bd8ad09292..6a3721fadf8 100644 --- a/src/storage/storage_info.cpp +++ b/src/storage/storage_info.cpp @@ -2,6 +2,6 @@ namespace duckdb { -const uint64_t VERSION_NUMBER = 29; +const uint64_t VERSION_NUMBER = 30; } // namespace duckdb diff --git a/test/sql/aggregate/qualify/test_qualify.test b/test/sql/aggregate/qualify/test_qualify.test new file mode 100644 index 00000000000..4a8f7adedb2 --- /dev/null +++ b/test/sql/aggregate/qualify/test_qualify.test @@ -0,0 +1,207 @@ +# name: test/sql/aggregate/qualify/test_qualify.test +# description: Test QUALIFY clause +# group: [qualify] + +require vector_size 512 + +statement ok +PRAGMA enable_verification + +statement ok +CREATE TABLE test (a INTEGER, b INTEGER); + +statement ok +INSERT INTO test VALUES (11, 22), (13, 22), (12, 21) + +statement ok +CREATE TABLE qt (a INTEGER, b CHAR(1), c INTEGER); + +statement ok +INSERT INTO qt VALUES (1, 'A', 1), (2, 'A', 2), (3, 'B', 1), (4, 'B', 2) + +# basic test +query ITI +SELECT * from qt QUALIFY row_number() over (PARTITION BY b ORDER BY c) = 1 +---- +1 A 1 +3 B 1 + +query ITII +SELECT a, b, c, row_number() over (PARTITION BY b ORDER BY c) as row_num FROM qt QUALIFY row_num = 1 +---- +1 A 1 1 +3 B 1 1 + +statement ok +CREATE TABLE exam (student TEXT, subject TEXT, mark INTEGER); + +statement ok +INSERT INTO exam VALUES +('Lily', 'Maths', 65), +('Lily', 'Science', 80), +('Lily', 'english', 70), +('Isabella', 'Maths', 50), +('Isabella', 'Science', 70), +('Isabella', 'english', 90), +('Olivia', 'Maths', 55), +('Olivia', 'Science', 60), +('Olivia', 'english', 89); + +query TTI +SELECT * FROM exam QUALIFY rank() OVER (ORDER BY mark desc) = 4 +---- +Lily english 70 +Isabella Science 70 + +query TTI +SELECT * FROM exam QUALIFY rank() OVER (PARTITION BY student ORDER BY mark DESC) = 2 ORDER BY student +---- +Isabella Science 70 +Lily english 70 +Olivia Science 60 + +query TTI +SELECT * FROM exam WINDOW w AS (ORDER BY mark) QUALIFY row_number() OVER w >= 1 AND (rank() OVER w) <= 2 ORDER BY student +---- +Isabella Maths 50 +Olivia Maths 55 + +query TTI +SELECT * FROM exam QUALIFY first_value(mark) OVER (PARTITION BY student ORDER BY mark) >= 60 order by mark +---- +Lily Maths 65 +Lily english 70 +Lily Science 80 + +query TTI +SELECT * FROM exam QUALIFY last_value(mark) OVER (PARTITION BY student ORDER BY mark) >= 85 order by mark +---- +Olivia english 89 +Isabella english 90 + +statement ok +CREATE TABLE power (plant TEXT, date DATE, mwh INTEGER); + +statement ok +INSERT INTO power VALUES +('Boston', '2019-01-02', 564337), +('Boston', '2019-01-03', 507405), +('Boston', '2019-01-04', 528523), +('Boston', '2019-01-05', 469538), +('Boston', '2019-01-06', 474163), +('Boston', '2019-01-07', 507213), +('Boston', '2019-01-08', 613040), +('Boston', '2019-01-09', 582588), +('Boston', '2019-01-10', 499506), +('Boston', '2019-01-11', 482014), +('Boston', '2019-01-12', 486134), +('Boston', '2019-01-13', 531518), +('Worcester', '2019-01-02', 118860), +('Worcester', '2019-01-03', 101977), +('Worcester', '2019-01-04', 106054), +('Worcester', '2019-01-05', 92182), +('Worcester', '2019-01-06', 94492), +('Worcester', '2019-01-07', 99932), +('Worcester', '2019-01-08', 118854), +('Worcester', '2019-01-09', 113506), +('Worcester', '2019-01-10', 96644), +('Worcester', '2019-01-11', 93806), +('Worcester', '2019-01-12', 98963), +('Worcester', '2019-01-13', 107170); + +# qualify with ORDER +query TTI +SELECT * FROM power QUALIFY rank() OVER (PARTITION BY plant ORDER BY date DESC) = 2 ORDER BY plant DESC +---- +Worcester 2019-01-12 98963 +Boston 2019-01-12 486134 + +query TTR +SELECT * FROM (SELECT plant, date, avg(mwh) OVER (PARTITION BY plant ORDER BY date ASC RANGE BETWEEN INTERVAL 3 DAYS PRECEDING AND INTERVAL 3 DAYS FOLLOWING) AS avgmwh FROM power +ORDER BY plant, avgmwh DESC) QUALIFY row_number() OVER (PARTITION BY plant ORDER BY avgmwh DESC) = 1 +---- +Boston 2019-01-11 532466.666667 +Worcester 2019-01-11 104823.833333 + +# QUALIFY with condition on ALIAS +query II +SELECT b, SUM(a) AS sum FROM test GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) >= 1 AND sum < 20 ORDER BY b; +---- +21 12 + +# expression in qualify +statement ok +SELECT b, SUM(a) AS sum FROM test GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) > sum * 10; +---- + +query ITI +SELECT * FROM qt QUALIFY row_number() OVER (PARTITION BY b ORDER BY c) = (SELECT max(c) FROM qt) +---- +2 A 2 +4 B 2 + +statement ok +CREATE TABLE tenk1 (unique1 int4, unique2 int4, two int4, four int4, ten int4, twenty int4, hundred int4, thousand int4, twothousand int4, fivethous int4, tenthous int4, odd int4, even int4, stringu1 varchar, stringu2 varchar, string4 varchar) + +statement ok +insert into tenk1 values (8800,0,0,0,0,0,0,800,800,3800,8800,0,1,'MAAAAA','AAAAAA','AAAAxx'), (1891,1,1,3,1,11,91,891,1891,1891,1891,182,183,'TUAAAA','BAAAAA','HHHHxx'), (3420,2,0,0,0,0,20,420,1420,3420,3420,40,41,'OBAAAA','CAAAAA','OOOOxx'), (9850,3,0,2,0,10,50,850,1850,4850,9850,100,101,'WOAAAA','DAAAAA','VVVVxx'), (7164,4,0,0,4,4,64,164,1164,2164,7164,128,129,'OPAAAA','EAAAAA','AAAAxx'), (8009,5,1,1,9,9,9,9,9,3009,8009,18,19,'BWAAAA','FAAAAA','HHHHxx'), (5057,6,1,1,7,17,57,57,1057,57,5057,114,115,'NMAAAA','GAAAAA','OOOOxx'), (6701,7,1,1,1,1,1,701,701,1701,6701,2,3,'TXAAAA','HAAAAA','VVVVxx'), (4321,8,1,1,1,1,21,321,321,4321,4321,42,43,'FKAAAA','IAAAAA','AAAAxx'), (3043,9,1,3,3,3,43,43,1043,3043,3043,86,87,'BNAAAA','JAAAAA','HHHHxx') + +# cume_dist +query I +SELECT unique1 FROM tenk1 QUALIFY cast(cume_dist() OVER (PARTITION BY four ORDER BY ten)*10 as integer) = 5 order by four, ten +---- +6701 +4321 +1891 + +# first_value +query I +SELECT unique1 FROM tenk1 QUALIFY first_value(ten) OVER (PARTITION BY four ORDER BY ten) = 1 order by four, ten +---- +6701 +4321 +5057 +8009 +1891 +3043 + +# lead +query I +SELECT unique1 FROM tenk1 qualify lead(ten * 2, 1, -1) OVER (PARTITION BY four ORDER BY ten) = -1 order by four, ten +---- +7164 +8009 +9850 +3043 + +# using in subquery +query I +SELECT * FROM (SELECT b FROM test as t GROUP BY b QUALIFY rank() OVER (PARTITION BY t.b) = 1) QUALIFY row_number() OVER (PARTITION BY b) = 1 +---- +21 +22 + +query II +SELECT * FROM test QUALIFY row_number() OVER (PARTITION BY test.b) = (SELECT max(a) FROM qt GROUP BY qt.b QUALIFY rank() OVER (PARTITION BY qt.b) = 1) +---- +13 22 + +# in the order of WINDOW clause +statement ok +SELECT * FROM exam WINDOW w AS (ORDER BY mark) QUALIFY row_number() OVER w = 1 + +# must appear WINDOW clause before QUALIFY clause +statement error +SELECT * FROM exam QUALIFY row_number() OVER w = 1 WINDOW w AS (ORDER BY mark) + +# QUALIFY clause requires at least one window function to be specified in at least one of the SELECT column list or the filter predicate of the QUALIFY clause +statement error +SELECT b, avg(a) AS avga FROM test GROUP BY b QUALIFY avga > 10 + +# invalid window function +statement error +SELECT b FROM test QUALIFY avga() > 10 + +# column not found in from clause and can't find in alias map +statement error +SELECT b, SUM(a) FROM test GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) > sum; diff --git a/test/sql/aggregate/qualify/test_qualify_macro.test b/test/sql/aggregate/qualify/test_qualify_macro.test new file mode 100644 index 00000000000..0474420796e --- /dev/null +++ b/test/sql/aggregate/qualify/test_qualify_macro.test @@ -0,0 +1,51 @@ +# name: test/sql/aggregate/qualify/test_qualify_macro.test +# description: Test QUALIFY clause in the subquery of a macro function +# group: [qualify] + +# load the DB from disk +load __TEST_DIR__/macro_storage.db + +statement ok +PRAGMA disable_checkpoint_on_shutdown + +statement ok +PRAGMA wal_autocheckpoint='1TB'; + +statement ok +CREATE TABLE test (a INTEGER, b INTEGER); + +statement ok +INSERT INTO test VALUES (11, 22), (13, 22), (12, 21) + +# create a macro +statement ok +CREATE MACRO plus1(x) AS (x + (SELECT COUNT(*) FROM (SELECT b, SUM(test.a) FROM test GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) = 1))) + +# use the macro +query T +SELECT plus1(3) +---- +5 + +loop i 0 2 + +# restart the system +restart + +query T +SELECT plus1(5) +---- +7 + +# drop the macro again +statement ok +DROP MACRO plus1 + +statement error +SELECT plus1(2) + +# after recreating the macro we can use it again +statement ok +CREATE MACRO plus1(x) AS (x + (SELECT COUNT(*) FROM (SELECT b, SUM(test.a) FROM test GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) = 1))) + +endloop \ No newline at end of file diff --git a/test/sql/aggregate/qualify/test_qualify_view.test b/test/sql/aggregate/qualify/test_qualify_view.test new file mode 100644 index 00000000000..b84ee06b57e --- /dev/null +++ b/test/sql/aggregate/qualify/test_qualify_view.test @@ -0,0 +1,62 @@ +# name: test/sql/aggregate/qualify/test_qualify_view.test +# description: Test QUALIFY clause in a view over different runs +# group: [qualify] + +# load the DB from disk +load __TEST_DIR__/view_storage.db + +statement ok +PRAGMA disable_checkpoint_on_shutdown + +statement ok +PRAGMA wal_autocheckpoint='1TB'; + +# create a schema and view +statement ok +CREATE SCHEMA test; + +statement ok +CREATE TABLE test.t (a INTEGER, b INTEGER); + +statement ok +INSERT INTO test.t VALUES (11, 22), (13, 22), (12, 21) + +statement ok +CREATE VIEW test.v AS SELECT * FROM test.t QUALIFY row_number() OVER (PARTITION BY b) = 1; + +query II +SELECT b, SUM(a) FROM test.v GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) = 1 +---- +21 12 +22 11 + +# drop the table the view is based on +statement ok +DROP TABLE test.t + +loop i 0 2 + +# restart the system +restart + +# after recreating the table, we can query the view again +statement ok +CREATE TABLE test.t (a INTEGER, b INTEGER); + +statement ok +INSERT INTO test.t VALUES (11, 22), (13, 22), (12, 21) + +query II +SELECT b, SUM(a) FROM test.v GROUP BY b QUALIFY row_number() OVER (PARTITION BY b) = 1 +---- +21 12 +22 11 + +# drop the table again +statement ok +DROP TABLE test.t + +statement error +SELECT * FROM test.v + +endloop \ No newline at end of file diff --git a/test/sql/storage_version/storage_version.db b/test/sql/storage_version/storage_version.db index 615a7d6484f..53e7e3c8ba9 100644 Binary files a/test/sql/storage_version/storage_version.db and b/test/sql/storage_version/storage_version.db differ diff --git a/third_party/libpg_query/grammar/keywords/reserved_keywords.list b/third_party/libpg_query/grammar/keywords/reserved_keywords.list index 53c7d0d7c9c..5e6e941a9dd 100644 --- a/third_party/libpg_query/grammar/keywords/reserved_keywords.list +++ b/third_party/libpg_query/grammar/keywords/reserved_keywords.list @@ -37,6 +37,7 @@ FROM GRANT GROUP_P HAVING +QUALIFY IN_P INITIALLY INTERSECT diff --git a/third_party/libpg_query/grammar/statements/select.y b/third_party/libpg_query/grammar/statements/select.y index 07079d785fe..c3d0280a337 100644 --- a/third_party/libpg_query/grammar/statements/select.y +++ b/third_party/libpg_query/grammar/statements/select.y @@ -154,7 +154,7 @@ select_clause: simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause - group_clause having_clause window_clause sample_clause + group_clause having_clause window_clause qualify_clause sample_clause { PGSelectStmt *n = makeNode(PGSelectStmt); n->targetList = $3; @@ -164,12 +164,13 @@ simple_select: n->groupClause = $7; n->havingClause = $8; n->windowClause = $9; - n->sampleOptions = $10; + n->qualifyClause = $10; + n->sampleOptions = $11; $$ = (PGNode *)n; } | SELECT distinct_clause target_list into_clause from_clause where_clause - group_clause having_clause window_clause sample_clause + group_clause having_clause window_clause qualify_clause sample_clause { PGSelectStmt *n = makeNode(PGSelectStmt); n->distinctClause = $2; @@ -180,7 +181,8 @@ simple_select: n->groupClause = $7; n->havingClause = $8; n->windowClause = $9; - n->sampleOptions = $10; + n->qualifyClause = $10; + n->sampleOptions = $11; $$ = (PGNode *)n; } | values_clause { $$ = $1; } @@ -682,6 +684,11 @@ having_clause: | /*EMPTY*/ { $$ = NULL; } ; +qualify_clause: + QUALIFY a_expr { $$ = $2; } + | /*EMPTY*/ { $$ = NULL; } + ; + for_locking_clause: for_locking_items { $$ = $1; } | FOR READ_P ONLY { $$ = NIL; } diff --git a/third_party/libpg_query/grammar/types/select.yh b/third_party/libpg_query/grammar/types/select.yh index a0a9a8023ae..0247da50e00 100644 --- a/third_party/libpg_query/grammar/types/select.yh +++ b/third_party/libpg_query/grammar/types/select.yh @@ -59,7 +59,7 @@ %type where_clause a_expr b_expr c_expr AexprConst indirection_el opt_slice_bound - columnref in_expr having_clause func_table + columnref in_expr having_clause qualify_clause func_table %type rowsfrom_item rowsfrom_list opt_col_def_list %type opt_ordinality %type opt_ignore_nulls diff --git a/third_party/libpg_query/include/nodes/parsenodes.hpp b/third_party/libpg_query/include/nodes/parsenodes.hpp index 89772ed53fe..9bfd8ab2f6b 100755 --- a/third_party/libpg_query/include/nodes/parsenodes.hpp +++ b/third_party/libpg_query/include/nodes/parsenodes.hpp @@ -1177,6 +1177,7 @@ typedef struct PGSelectStmt { PGList *groupClause; /* GROUP BY clauses */ PGNode *havingClause; /* HAVING conditional-expression */ PGList *windowClause; /* WINDOW window_name AS (...), ... */ + PGNode *qualifyClause; /* QUALIFY conditional-expression */ /* * In a "leaf" node representing a VALUES list, the above fields are all diff --git a/third_party/libpg_query/include/parser/gram.hpp b/third_party/libpg_query/include/parser/gram.hpp index 39393951aff..fff77242dda 100644 --- a/third_party/libpg_query/include/parser/gram.hpp +++ b/third_party/libpg_query/include/parser/gram.hpp @@ -359,164 +359,165 @@ PROCEDURE = 575, PROGRAM = 576, PUBLICATION = 577, - QUOTE = 578, - RANGE = 579, - READ_P = 580, - REAL = 581, - REASSIGN = 582, - RECHECK = 583, - RECURSIVE = 584, - REF = 585, - REFERENCES = 586, - REFERENCING = 587, - REFRESH = 588, - REINDEX = 589, - RELATIVE_P = 590, - RELEASE = 591, - RENAME = 592, - REPEATABLE = 593, - REPLACE = 594, - REPLICA = 595, - RESET = 596, - RESPECT_P = 597, - RESTART = 598, - RESTRICT = 599, - RETURNING = 600, - RETURNS = 601, - REVOKE = 602, - RIGHT = 603, - ROLE = 604, - ROLLBACK = 605, - ROLLUP = 606, - ROW = 607, - ROWS = 608, - RULE = 609, - SAMPLE = 610, - SAVEPOINT = 611, - SCHEMA = 612, - SCHEMAS = 613, - SCROLL = 614, - SEARCH = 615, - SECOND_P = 616, - SECONDS_P = 617, - SECURITY = 618, - SELECT = 619, - SEQUENCE = 620, - SEQUENCES = 621, - SERIALIZABLE = 622, - SERVER = 623, - SESSION = 624, - SESSION_USER = 625, - SET = 626, - SETOF = 627, - SETS = 628, - SHARE = 629, - SHOW = 630, - SIMILAR = 631, - SIMPLE = 632, - SKIP = 633, - SMALLINT = 634, - SNAPSHOT = 635, - SOME = 636, - SQL_P = 637, - STABLE = 638, - STANDALONE_P = 639, - START = 640, - STATEMENT = 641, - STATISTICS = 642, - STDIN = 643, - STDOUT = 644, - STORAGE = 645, - STRICT_P = 646, - STRIP_P = 647, - STRUCT = 648, - SUBSCRIPTION = 649, - SUBSTRING = 650, - SUMMARIZE = 651, - SYMMETRIC = 652, - SYSID = 653, - SYSTEM_P = 654, - TABLE = 655, - TABLES = 656, - TABLESAMPLE = 657, - TABLESPACE = 658, - TEMP = 659, - TEMPLATE = 660, - TEMPORARY = 661, - TEXT_P = 662, - THEN = 663, - TIME = 664, - TIMESTAMP = 665, - TO = 666, - TRAILING = 667, - TRANSACTION = 668, - TRANSFORM = 669, - TREAT = 670, - TRIGGER = 671, - TRIM = 672, - TRUE_P = 673, - TRUNCATE = 674, - TRUSTED = 675, - TRY_CAST = 676, - TYPE_P = 677, - TYPES_P = 678, - UNBOUNDED = 679, - UNCOMMITTED = 680, - UNENCRYPTED = 681, - UNION = 682, - UNIQUE = 683, - UNKNOWN = 684, - UNLISTEN = 685, - UNLOGGED = 686, - UNTIL = 687, - UPDATE = 688, - USER = 689, - USING = 690, - VACUUM = 691, - VALID = 692, - VALIDATE = 693, - VALIDATOR = 694, - VALUE_P = 695, - VALUES = 696, - VARCHAR = 697, - VARIADIC = 698, - VARYING = 699, - VERBOSE = 700, - VERSION_P = 701, - VIEW = 702, - VIEWS = 703, - VOLATILE = 704, - WHEN = 705, - WHERE = 706, - WHITESPACE_P = 707, - WINDOW = 708, - WITH = 709, - WITHIN = 710, - WITHOUT = 711, - WORK = 712, - WRAPPER = 713, - WRITE_P = 714, - XML_P = 715, - XMLATTRIBUTES = 716, - XMLCONCAT = 717, - XMLELEMENT = 718, - XMLEXISTS = 719, - XMLFOREST = 720, - XMLNAMESPACES = 721, - XMLPARSE = 722, - XMLPI = 723, - XMLROOT = 724, - XMLSERIALIZE = 725, - XMLTABLE = 726, - YEAR_P = 727, - YEARS_P = 728, - YES_P = 729, - ZONE = 730, - NOT_LA = 731, - NULLS_LA = 732, - WITH_LA = 733, - POSTFIXOP = 734, - UMINUS = 735 + QUALIFY = 578, + QUOTE = 579, + RANGE = 580, + READ_P = 581, + REAL = 582, + REASSIGN = 583, + RECHECK = 584, + RECURSIVE = 585, + REF = 586, + REFERENCES = 587, + REFERENCING = 588, + REFRESH = 589, + REINDEX = 590, + RELATIVE_P = 591, + RELEASE = 592, + RENAME = 593, + REPEATABLE = 594, + REPLACE = 595, + REPLICA = 596, + RESET = 597, + RESPECT_P = 598, + RESTART = 599, + RESTRICT = 600, + RETURNING = 601, + RETURNS = 602, + REVOKE = 603, + RIGHT = 604, + ROLE = 605, + ROLLBACK = 606, + ROLLUP = 607, + ROW = 608, + ROWS = 609, + RULE = 610, + SAMPLE = 611, + SAVEPOINT = 612, + SCHEMA = 613, + SCHEMAS = 614, + SCROLL = 615, + SEARCH = 616, + SECOND_P = 617, + SECONDS_P = 618, + SECURITY = 619, + SELECT = 620, + SEQUENCE = 621, + SEQUENCES = 622, + SERIALIZABLE = 623, + SERVER = 624, + SESSION = 625, + SESSION_USER = 626, + SET = 627, + SETOF = 628, + SETS = 629, + SHARE = 630, + SHOW = 631, + SIMILAR = 632, + SIMPLE = 633, + SKIP = 634, + SMALLINT = 635, + SNAPSHOT = 636, + SOME = 637, + SQL_P = 638, + STABLE = 639, + STANDALONE_P = 640, + START = 641, + STATEMENT = 642, + STATISTICS = 643, + STDIN = 644, + STDOUT = 645, + STORAGE = 646, + STRICT_P = 647, + STRIP_P = 648, + STRUCT = 649, + SUBSCRIPTION = 650, + SUBSTRING = 651, + SUMMARIZE = 652, + SYMMETRIC = 653, + SYSID = 654, + SYSTEM_P = 655, + TABLE = 656, + TABLES = 657, + TABLESAMPLE = 658, + TABLESPACE = 659, + TEMP = 660, + TEMPLATE = 661, + TEMPORARY = 662, + TEXT_P = 663, + THEN = 664, + TIME = 665, + TIMESTAMP = 666, + TO = 667, + TRAILING = 668, + TRANSACTION = 669, + TRANSFORM = 670, + TREAT = 671, + TRIGGER = 672, + TRIM = 673, + TRUE_P = 674, + TRUNCATE = 675, + TRUSTED = 676, + TRY_CAST = 677, + TYPE_P = 678, + TYPES_P = 679, + UNBOUNDED = 680, + UNCOMMITTED = 681, + UNENCRYPTED = 682, + UNION = 683, + UNIQUE = 684, + UNKNOWN = 685, + UNLISTEN = 686, + UNLOGGED = 687, + UNTIL = 688, + UPDATE = 689, + USER = 690, + USING = 691, + VACUUM = 692, + VALID = 693, + VALIDATE = 694, + VALIDATOR = 695, + VALUE_P = 696, + VALUES = 697, + VARCHAR = 698, + VARIADIC = 699, + VARYING = 700, + VERBOSE = 701, + VERSION_P = 702, + VIEW = 703, + VIEWS = 704, + VOLATILE = 705, + WHEN = 706, + WHERE = 707, + WHITESPACE_P = 708, + WINDOW = 709, + WITH = 710, + WITHIN = 711, + WITHOUT = 712, + WORK = 713, + WRAPPER = 714, + WRITE_P = 715, + XML_P = 716, + XMLATTRIBUTES = 717, + XMLCONCAT = 718, + XMLELEMENT = 719, + XMLEXISTS = 720, + XMLFOREST = 721, + XMLNAMESPACES = 722, + XMLPARSE = 723, + XMLPI = 724, + XMLROOT = 725, + XMLSERIALIZE = 726, + XMLTABLE = 727, + YEAR_P = 728, + YEARS_P = 729, + YES_P = 730, + ZONE = 731, + NOT_LA = 732, + NULLS_LA = 733, + WITH_LA = 734, + POSTFIXOP = 735, + UMINUS = 736 }; #endif /* Tokens. */ @@ -840,164 +841,165 @@ #define PROCEDURE 575 #define PROGRAM 576 #define PUBLICATION 577 -#define QUOTE 578 -#define RANGE 579 -#define READ_P 580 -#define REAL 581 -#define REASSIGN 582 -#define RECHECK 583 -#define RECURSIVE 584 -#define REF 585 -#define REFERENCES 586 -#define REFERENCING 587 -#define REFRESH 588 -#define REINDEX 589 -#define RELATIVE_P 590 -#define RELEASE 591 -#define RENAME 592 -#define REPEATABLE 593 -#define REPLACE 594 -#define REPLICA 595 -#define RESET 596 -#define RESPECT_P 597 -#define RESTART 598 -#define RESTRICT 599 -#define RETURNING 600 -#define RETURNS 601 -#define REVOKE 602 -#define RIGHT 603 -#define ROLE 604 -#define ROLLBACK 605 -#define ROLLUP 606 -#define ROW 607 -#define ROWS 608 -#define RULE 609 -#define SAMPLE 610 -#define SAVEPOINT 611 -#define SCHEMA 612 -#define SCHEMAS 613 -#define SCROLL 614 -#define SEARCH 615 -#define SECOND_P 616 -#define SECONDS_P 617 -#define SECURITY 618 -#define SELECT 619 -#define SEQUENCE 620 -#define SEQUENCES 621 -#define SERIALIZABLE 622 -#define SERVER 623 -#define SESSION 624 -#define SESSION_USER 625 -#define SET 626 -#define SETOF 627 -#define SETS 628 -#define SHARE 629 -#define SHOW 630 -#define SIMILAR 631 -#define SIMPLE 632 -#define SKIP 633 -#define SMALLINT 634 -#define SNAPSHOT 635 -#define SOME 636 -#define SQL_P 637 -#define STABLE 638 -#define STANDALONE_P 639 -#define START 640 -#define STATEMENT 641 -#define STATISTICS 642 -#define STDIN 643 -#define STDOUT 644 -#define STORAGE 645 -#define STRICT_P 646 -#define STRIP_P 647 -#define STRUCT 648 -#define SUBSCRIPTION 649 -#define SUBSTRING 650 -#define SUMMARIZE 651 -#define SYMMETRIC 652 -#define SYSID 653 -#define SYSTEM_P 654 -#define TABLE 655 -#define TABLES 656 -#define TABLESAMPLE 657 -#define TABLESPACE 658 -#define TEMP 659 -#define TEMPLATE 660 -#define TEMPORARY 661 -#define TEXT_P 662 -#define THEN 663 -#define TIME 664 -#define TIMESTAMP 665 -#define TO 666 -#define TRAILING 667 -#define TRANSACTION 668 -#define TRANSFORM 669 -#define TREAT 670 -#define TRIGGER 671 -#define TRIM 672 -#define TRUE_P 673 -#define TRUNCATE 674 -#define TRUSTED 675 -#define TRY_CAST 676 -#define TYPE_P 677 -#define TYPES_P 678 -#define UNBOUNDED 679 -#define UNCOMMITTED 680 -#define UNENCRYPTED 681 -#define UNION 682 -#define UNIQUE 683 -#define UNKNOWN 684 -#define UNLISTEN 685 -#define UNLOGGED 686 -#define UNTIL 687 -#define UPDATE 688 -#define USER 689 -#define USING 690 -#define VACUUM 691 -#define VALID 692 -#define VALIDATE 693 -#define VALIDATOR 694 -#define VALUE_P 695 -#define VALUES 696 -#define VARCHAR 697 -#define VARIADIC 698 -#define VARYING 699 -#define VERBOSE 700 -#define VERSION_P 701 -#define VIEW 702 -#define VIEWS 703 -#define VOLATILE 704 -#define WHEN 705 -#define WHERE 706 -#define WHITESPACE_P 707 -#define WINDOW 708 -#define WITH 709 -#define WITHIN 710 -#define WITHOUT 711 -#define WORK 712 -#define WRAPPER 713 -#define WRITE_P 714 -#define XML_P 715 -#define XMLATTRIBUTES 716 -#define XMLCONCAT 717 -#define XMLELEMENT 718 -#define XMLEXISTS 719 -#define XMLFOREST 720 -#define XMLNAMESPACES 721 -#define XMLPARSE 722 -#define XMLPI 723 -#define XMLROOT 724 -#define XMLSERIALIZE 725 -#define XMLTABLE 726 -#define YEAR_P 727 -#define YEARS_P 728 -#define YES_P 729 -#define ZONE 730 -#define NOT_LA 731 -#define NULLS_LA 732 -#define WITH_LA 733 -#define POSTFIXOP 734 -#define UMINUS 735 +#define QUALIFY 578 +#define QUOTE 579 +#define RANGE 580 +#define READ_P 581 +#define REAL 582 +#define REASSIGN 583 +#define RECHECK 584 +#define RECURSIVE 585 +#define REF 586 +#define REFERENCES 587 +#define REFERENCING 588 +#define REFRESH 589 +#define REINDEX 590 +#define RELATIVE_P 591 +#define RELEASE 592 +#define RENAME 593 +#define REPEATABLE 594 +#define REPLACE 595 +#define REPLICA 596 +#define RESET 597 +#define RESPECT_P 598 +#define RESTART 599 +#define RESTRICT 600 +#define RETURNING 601 +#define RETURNS 602 +#define REVOKE 603 +#define RIGHT 604 +#define ROLE 605 +#define ROLLBACK 606 +#define ROLLUP 607 +#define ROW 608 +#define ROWS 609 +#define RULE 610 +#define SAMPLE 611 +#define SAVEPOINT 612 +#define SCHEMA 613 +#define SCHEMAS 614 +#define SCROLL 615 +#define SEARCH 616 +#define SECOND_P 617 +#define SECONDS_P 618 +#define SECURITY 619 +#define SELECT 620 +#define SEQUENCE 621 +#define SEQUENCES 622 +#define SERIALIZABLE 623 +#define SERVER 624 +#define SESSION 625 +#define SESSION_USER 626 +#define SET 627 +#define SETOF 628 +#define SETS 629 +#define SHARE 630 +#define SHOW 631 +#define SIMILAR 632 +#define SIMPLE 633 +#define SKIP 634 +#define SMALLINT 635 +#define SNAPSHOT 636 +#define SOME 637 +#define SQL_P 638 +#define STABLE 639 +#define STANDALONE_P 640 +#define START 641 +#define STATEMENT 642 +#define STATISTICS 643 +#define STDIN 644 +#define STDOUT 645 +#define STORAGE 646 +#define STRICT_P 647 +#define STRIP_P 648 +#define STRUCT 649 +#define SUBSCRIPTION 650 +#define SUBSTRING 651 +#define SUMMARIZE 652 +#define SYMMETRIC 653 +#define SYSID 654 +#define SYSTEM_P 655 +#define TABLE 656 +#define TABLES 657 +#define TABLESAMPLE 658 +#define TABLESPACE 659 +#define TEMP 660 +#define TEMPLATE 661 +#define TEMPORARY 662 +#define TEXT_P 663 +#define THEN 664 +#define TIME 665 +#define TIMESTAMP 666 +#define TO 667 +#define TRAILING 668 +#define TRANSACTION 669 +#define TRANSFORM 670 +#define TREAT 671 +#define TRIGGER 672 +#define TRIM 673 +#define TRUE_P 674 +#define TRUNCATE 675 +#define TRUSTED 676 +#define TRY_CAST 677 +#define TYPE_P 678 +#define TYPES_P 679 +#define UNBOUNDED 680 +#define UNCOMMITTED 681 +#define UNENCRYPTED 682 +#define UNION 683 +#define UNIQUE 684 +#define UNKNOWN 685 +#define UNLISTEN 686 +#define UNLOGGED 687 +#define UNTIL 688 +#define UPDATE 689 +#define USER 690 +#define USING 691 +#define VACUUM 692 +#define VALID 693 +#define VALIDATE 694 +#define VALIDATOR 695 +#define VALUE_P 696 +#define VALUES 697 +#define VARCHAR 698 +#define VARIADIC 699 +#define VARYING 700 +#define VERBOSE 701 +#define VERSION_P 702 +#define VIEW 703 +#define VIEWS 704 +#define VOLATILE 705 +#define WHEN 706 +#define WHERE 707 +#define WHITESPACE_P 708 +#define WINDOW 709 +#define WITH 710 +#define WITHIN 711 +#define WITHOUT 712 +#define WORK 713 +#define WRAPPER 714 +#define WRITE_P 715 +#define XML_P 716 +#define XMLATTRIBUTES 717 +#define XMLCONCAT 718 +#define XMLELEMENT 719 +#define XMLEXISTS 720 +#define XMLFOREST 721 +#define XMLNAMESPACES 722 +#define XMLPARSE 723 +#define XMLPI 724 +#define XMLROOT 725 +#define XMLSERIALIZE 726 +#define XMLTABLE 727 +#define YEAR_P 728 +#define YEARS_P 729 +#define YES_P 730 +#define ZONE 731 +#define NOT_LA 732 +#define NULLS_LA 733 +#define WITH_LA 734 +#define POSTFIXOP 735 +#define UMINUS 736 @@ -1049,7 +1051,7 @@ typedef union YYSTYPE PGViewCheckOption viewcheckoption; } /* Line 1489 of yacc.c. */ -#line 1053 "third_party/libpg_query/grammar/grammar_out.hpp" +#line 1055 "third_party/libpg_query/grammar/grammar_out.hpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/third_party/libpg_query/include/parser/kwlist.hpp b/third_party/libpg_query/include/parser/kwlist.hpp index cba5b8dea55..76e04d624ee 100755 --- a/third_party/libpg_query/include/parser/kwlist.hpp +++ b/third_party/libpg_query/include/parser/kwlist.hpp @@ -307,6 +307,7 @@ PG_KEYWORD("procedural", PROCEDURAL, UNRESERVED_KEYWORD) PG_KEYWORD("procedure", PROCEDURE, UNRESERVED_KEYWORD) PG_KEYWORD("program", PROGRAM, UNRESERVED_KEYWORD) PG_KEYWORD("publication", PUBLICATION, UNRESERVED_KEYWORD) +PG_KEYWORD("qualify", QUALIFY, RESERVED_KEYWORD) PG_KEYWORD("quote", QUOTE, UNRESERVED_KEYWORD) PG_KEYWORD("range", RANGE, UNRESERVED_KEYWORD) PG_KEYWORD("read", READ_P, UNRESERVED_KEYWORD) diff --git a/third_party/libpg_query/src_backend_parser_gram.cpp b/third_party/libpg_query/src_backend_parser_gram.cpp index cc519f33917..6b437a5ba6f 100644 --- a/third_party/libpg_query/src_backend_parser_gram.cpp +++ b/third_party/libpg_query/src_backend_parser_gram.cpp @@ -394,164 +394,165 @@ PROCEDURE = 575, PROGRAM = 576, PUBLICATION = 577, - QUOTE = 578, - RANGE = 579, - READ_P = 580, - REAL = 581, - REASSIGN = 582, - RECHECK = 583, - RECURSIVE = 584, - REF = 585, - REFERENCES = 586, - REFERENCING = 587, - REFRESH = 588, - REINDEX = 589, - RELATIVE_P = 590, - RELEASE = 591, - RENAME = 592, - REPEATABLE = 593, - REPLACE = 594, - REPLICA = 595, - RESET = 596, - RESPECT_P = 597, - RESTART = 598, - RESTRICT = 599, - RETURNING = 600, - RETURNS = 601, - REVOKE = 602, - RIGHT = 603, - ROLE = 604, - ROLLBACK = 605, - ROLLUP = 606, - ROW = 607, - ROWS = 608, - RULE = 609, - SAMPLE = 610, - SAVEPOINT = 611, - SCHEMA = 612, - SCHEMAS = 613, - SCROLL = 614, - SEARCH = 615, - SECOND_P = 616, - SECONDS_P = 617, - SECURITY = 618, - SELECT = 619, - SEQUENCE = 620, - SEQUENCES = 621, - SERIALIZABLE = 622, - SERVER = 623, - SESSION = 624, - SESSION_USER = 625, - SET = 626, - SETOF = 627, - SETS = 628, - SHARE = 629, - SHOW = 630, - SIMILAR = 631, - SIMPLE = 632, - SKIP = 633, - SMALLINT = 634, - SNAPSHOT = 635, - SOME = 636, - SQL_P = 637, - STABLE = 638, - STANDALONE_P = 639, - START = 640, - STATEMENT = 641, - STATISTICS = 642, - STDIN = 643, - STDOUT = 644, - STORAGE = 645, - STRICT_P = 646, - STRIP_P = 647, - STRUCT = 648, - SUBSCRIPTION = 649, - SUBSTRING = 650, - SUMMARIZE = 651, - SYMMETRIC = 652, - SYSID = 653, - SYSTEM_P = 654, - TABLE = 655, - TABLES = 656, - TABLESAMPLE = 657, - TABLESPACE = 658, - TEMP = 659, - TEMPLATE = 660, - TEMPORARY = 661, - TEXT_P = 662, - THEN = 663, - TIME = 664, - TIMESTAMP = 665, - TO = 666, - TRAILING = 667, - TRANSACTION = 668, - TRANSFORM = 669, - TREAT = 670, - TRIGGER = 671, - TRIM = 672, - TRUE_P = 673, - TRUNCATE = 674, - TRUSTED = 675, - TRY_CAST = 676, - TYPE_P = 677, - TYPES_P = 678, - UNBOUNDED = 679, - UNCOMMITTED = 680, - UNENCRYPTED = 681, - UNION = 682, - UNIQUE = 683, - UNKNOWN = 684, - UNLISTEN = 685, - UNLOGGED = 686, - UNTIL = 687, - UPDATE = 688, - USER = 689, - USING = 690, - VACUUM = 691, - VALID = 692, - VALIDATE = 693, - VALIDATOR = 694, - VALUE_P = 695, - VALUES = 696, - VARCHAR = 697, - VARIADIC = 698, - VARYING = 699, - VERBOSE = 700, - VERSION_P = 701, - VIEW = 702, - VIEWS = 703, - VOLATILE = 704, - WHEN = 705, - WHERE = 706, - WHITESPACE_P = 707, - WINDOW = 708, - WITH = 709, - WITHIN = 710, - WITHOUT = 711, - WORK = 712, - WRAPPER = 713, - WRITE_P = 714, - XML_P = 715, - XMLATTRIBUTES = 716, - XMLCONCAT = 717, - XMLELEMENT = 718, - XMLEXISTS = 719, - XMLFOREST = 720, - XMLNAMESPACES = 721, - XMLPARSE = 722, - XMLPI = 723, - XMLROOT = 724, - XMLSERIALIZE = 725, - XMLTABLE = 726, - YEAR_P = 727, - YEARS_P = 728, - YES_P = 729, - ZONE = 730, - NOT_LA = 731, - NULLS_LA = 732, - WITH_LA = 733, - POSTFIXOP = 734, - UMINUS = 735 + QUALIFY = 578, + QUOTE = 579, + RANGE = 580, + READ_P = 581, + REAL = 582, + REASSIGN = 583, + RECHECK = 584, + RECURSIVE = 585, + REF = 586, + REFERENCES = 587, + REFERENCING = 588, + REFRESH = 589, + REINDEX = 590, + RELATIVE_P = 591, + RELEASE = 592, + RENAME = 593, + REPEATABLE = 594, + REPLACE = 595, + REPLICA = 596, + RESET = 597, + RESPECT_P = 598, + RESTART = 599, + RESTRICT = 600, + RETURNING = 601, + RETURNS = 602, + REVOKE = 603, + RIGHT = 604, + ROLE = 605, + ROLLBACK = 606, + ROLLUP = 607, + ROW = 608, + ROWS = 609, + RULE = 610, + SAMPLE = 611, + SAVEPOINT = 612, + SCHEMA = 613, + SCHEMAS = 614, + SCROLL = 615, + SEARCH = 616, + SECOND_P = 617, + SECONDS_P = 618, + SECURITY = 619, + SELECT = 620, + SEQUENCE = 621, + SEQUENCES = 622, + SERIALIZABLE = 623, + SERVER = 624, + SESSION = 625, + SESSION_USER = 626, + SET = 627, + SETOF = 628, + SETS = 629, + SHARE = 630, + SHOW = 631, + SIMILAR = 632, + SIMPLE = 633, + SKIP = 634, + SMALLINT = 635, + SNAPSHOT = 636, + SOME = 637, + SQL_P = 638, + STABLE = 639, + STANDALONE_P = 640, + START = 641, + STATEMENT = 642, + STATISTICS = 643, + STDIN = 644, + STDOUT = 645, + STORAGE = 646, + STRICT_P = 647, + STRIP_P = 648, + STRUCT = 649, + SUBSCRIPTION = 650, + SUBSTRING = 651, + SUMMARIZE = 652, + SYMMETRIC = 653, + SYSID = 654, + SYSTEM_P = 655, + TABLE = 656, + TABLES = 657, + TABLESAMPLE = 658, + TABLESPACE = 659, + TEMP = 660, + TEMPLATE = 661, + TEMPORARY = 662, + TEXT_P = 663, + THEN = 664, + TIME = 665, + TIMESTAMP = 666, + TO = 667, + TRAILING = 668, + TRANSACTION = 669, + TRANSFORM = 670, + TREAT = 671, + TRIGGER = 672, + TRIM = 673, + TRUE_P = 674, + TRUNCATE = 675, + TRUSTED = 676, + TRY_CAST = 677, + TYPE_P = 678, + TYPES_P = 679, + UNBOUNDED = 680, + UNCOMMITTED = 681, + UNENCRYPTED = 682, + UNION = 683, + UNIQUE = 684, + UNKNOWN = 685, + UNLISTEN = 686, + UNLOGGED = 687, + UNTIL = 688, + UPDATE = 689, + USER = 690, + USING = 691, + VACUUM = 692, + VALID = 693, + VALIDATE = 694, + VALIDATOR = 695, + VALUE_P = 696, + VALUES = 697, + VARCHAR = 698, + VARIADIC = 699, + VARYING = 700, + VERBOSE = 701, + VERSION_P = 702, + VIEW = 703, + VIEWS = 704, + VOLATILE = 705, + WHEN = 706, + WHERE = 707, + WHITESPACE_P = 708, + WINDOW = 709, + WITH = 710, + WITHIN = 711, + WITHOUT = 712, + WORK = 713, + WRAPPER = 714, + WRITE_P = 715, + XML_P = 716, + XMLATTRIBUTES = 717, + XMLCONCAT = 718, + XMLELEMENT = 719, + XMLEXISTS = 720, + XMLFOREST = 721, + XMLNAMESPACES = 722, + XMLPARSE = 723, + XMLPI = 724, + XMLROOT = 725, + XMLSERIALIZE = 726, + XMLTABLE = 727, + YEAR_P = 728, + YEARS_P = 729, + YES_P = 730, + ZONE = 731, + NOT_LA = 732, + NULLS_LA = 733, + WITH_LA = 734, + POSTFIXOP = 735, + UMINUS = 736 }; #endif /* Tokens. */ @@ -875,164 +876,165 @@ #define PROCEDURE 575 #define PROGRAM 576 #define PUBLICATION 577 -#define QUOTE 578 -#define RANGE 579 -#define READ_P 580 -#define REAL 581 -#define REASSIGN 582 -#define RECHECK 583 -#define RECURSIVE 584 -#define REF 585 -#define REFERENCES 586 -#define REFERENCING 587 -#define REFRESH 588 -#define REINDEX 589 -#define RELATIVE_P 590 -#define RELEASE 591 -#define RENAME 592 -#define REPEATABLE 593 -#define REPLACE 594 -#define REPLICA 595 -#define RESET 596 -#define RESPECT_P 597 -#define RESTART 598 -#define RESTRICT 599 -#define RETURNING 600 -#define RETURNS 601 -#define REVOKE 602 -#define RIGHT 603 -#define ROLE 604 -#define ROLLBACK 605 -#define ROLLUP 606 -#define ROW 607 -#define ROWS 608 -#define RULE 609 -#define SAMPLE 610 -#define SAVEPOINT 611 -#define SCHEMA 612 -#define SCHEMAS 613 -#define SCROLL 614 -#define SEARCH 615 -#define SECOND_P 616 -#define SECONDS_P 617 -#define SECURITY 618 -#define SELECT 619 -#define SEQUENCE 620 -#define SEQUENCES 621 -#define SERIALIZABLE 622 -#define SERVER 623 -#define SESSION 624 -#define SESSION_USER 625 -#define SET 626 -#define SETOF 627 -#define SETS 628 -#define SHARE 629 -#define SHOW 630 -#define SIMILAR 631 -#define SIMPLE 632 -#define SKIP 633 -#define SMALLINT 634 -#define SNAPSHOT 635 -#define SOME 636 -#define SQL_P 637 -#define STABLE 638 -#define STANDALONE_P 639 -#define START 640 -#define STATEMENT 641 -#define STATISTICS 642 -#define STDIN 643 -#define STDOUT 644 -#define STORAGE 645 -#define STRICT_P 646 -#define STRIP_P 647 -#define STRUCT 648 -#define SUBSCRIPTION 649 -#define SUBSTRING 650 -#define SUMMARIZE 651 -#define SYMMETRIC 652 -#define SYSID 653 -#define SYSTEM_P 654 -#define TABLE 655 -#define TABLES 656 -#define TABLESAMPLE 657 -#define TABLESPACE 658 -#define TEMP 659 -#define TEMPLATE 660 -#define TEMPORARY 661 -#define TEXT_P 662 -#define THEN 663 -#define TIME 664 -#define TIMESTAMP 665 -#define TO 666 -#define TRAILING 667 -#define TRANSACTION 668 -#define TRANSFORM 669 -#define TREAT 670 -#define TRIGGER 671 -#define TRIM 672 -#define TRUE_P 673 -#define TRUNCATE 674 -#define TRUSTED 675 -#define TRY_CAST 676 -#define TYPE_P 677 -#define TYPES_P 678 -#define UNBOUNDED 679 -#define UNCOMMITTED 680 -#define UNENCRYPTED 681 -#define UNION 682 -#define UNIQUE 683 -#define UNKNOWN 684 -#define UNLISTEN 685 -#define UNLOGGED 686 -#define UNTIL 687 -#define UPDATE 688 -#define USER 689 -#define USING 690 -#define VACUUM 691 -#define VALID 692 -#define VALIDATE 693 -#define VALIDATOR 694 -#define VALUE_P 695 -#define VALUES 696 -#define VARCHAR 697 -#define VARIADIC 698 -#define VARYING 699 -#define VERBOSE 700 -#define VERSION_P 701 -#define VIEW 702 -#define VIEWS 703 -#define VOLATILE 704 -#define WHEN 705 -#define WHERE 706 -#define WHITESPACE_P 707 -#define WINDOW 708 -#define WITH 709 -#define WITHIN 710 -#define WITHOUT 711 -#define WORK 712 -#define WRAPPER 713 -#define WRITE_P 714 -#define XML_P 715 -#define XMLATTRIBUTES 716 -#define XMLCONCAT 717 -#define XMLELEMENT 718 -#define XMLEXISTS 719 -#define XMLFOREST 720 -#define XMLNAMESPACES 721 -#define XMLPARSE 722 -#define XMLPI 723 -#define XMLROOT 724 -#define XMLSERIALIZE 725 -#define XMLTABLE 726 -#define YEAR_P 727 -#define YEARS_P 728 -#define YES_P 729 -#define ZONE 730 -#define NOT_LA 731 -#define NULLS_LA 732 -#define WITH_LA 733 -#define POSTFIXOP 734 -#define UMINUS 735 +#define QUALIFY 578 +#define QUOTE 579 +#define RANGE 580 +#define READ_P 581 +#define REAL 582 +#define REASSIGN 583 +#define RECHECK 584 +#define RECURSIVE 585 +#define REF 586 +#define REFERENCES 587 +#define REFERENCING 588 +#define REFRESH 589 +#define REINDEX 590 +#define RELATIVE_P 591 +#define RELEASE 592 +#define RENAME 593 +#define REPEATABLE 594 +#define REPLACE 595 +#define REPLICA 596 +#define RESET 597 +#define RESPECT_P 598 +#define RESTART 599 +#define RESTRICT 600 +#define RETURNING 601 +#define RETURNS 602 +#define REVOKE 603 +#define RIGHT 604 +#define ROLE 605 +#define ROLLBACK 606 +#define ROLLUP 607 +#define ROW 608 +#define ROWS 609 +#define RULE 610 +#define SAMPLE 611 +#define SAVEPOINT 612 +#define SCHEMA 613 +#define SCHEMAS 614 +#define SCROLL 615 +#define SEARCH 616 +#define SECOND_P 617 +#define SECONDS_P 618 +#define SECURITY 619 +#define SELECT 620 +#define SEQUENCE 621 +#define SEQUENCES 622 +#define SERIALIZABLE 623 +#define SERVER 624 +#define SESSION 625 +#define SESSION_USER 626 +#define SET 627 +#define SETOF 628 +#define SETS 629 +#define SHARE 630 +#define SHOW 631 +#define SIMILAR 632 +#define SIMPLE 633 +#define SKIP 634 +#define SMALLINT 635 +#define SNAPSHOT 636 +#define SOME 637 +#define SQL_P 638 +#define STABLE 639 +#define STANDALONE_P 640 +#define START 641 +#define STATEMENT 642 +#define STATISTICS 643 +#define STDIN 644 +#define STDOUT 645 +#define STORAGE 646 +#define STRICT_P 647 +#define STRIP_P 648 +#define STRUCT 649 +#define SUBSCRIPTION 650 +#define SUBSTRING 651 +#define SUMMARIZE 652 +#define SYMMETRIC 653 +#define SYSID 654 +#define SYSTEM_P 655 +#define TABLE 656 +#define TABLES 657 +#define TABLESAMPLE 658 +#define TABLESPACE 659 +#define TEMP 660 +#define TEMPLATE 661 +#define TEMPORARY 662 +#define TEXT_P 663 +#define THEN 664 +#define TIME 665 +#define TIMESTAMP 666 +#define TO 667 +#define TRAILING 668 +#define TRANSACTION 669 +#define TRANSFORM 670 +#define TREAT 671 +#define TRIGGER 672 +#define TRIM 673 +#define TRUE_P 674 +#define TRUNCATE 675 +#define TRUSTED 676 +#define TRY_CAST 677 +#define TYPE_P 678 +#define TYPES_P 679 +#define UNBOUNDED 680 +#define UNCOMMITTED 681 +#define UNENCRYPTED 682 +#define UNION 683 +#define UNIQUE 684 +#define UNKNOWN 685 +#define UNLISTEN 686 +#define UNLOGGED 687 +#define UNTIL 688 +#define UPDATE 689 +#define USER 690 +#define USING 691 +#define VACUUM 692 +#define VALID 693 +#define VALIDATE 694 +#define VALIDATOR 695 +#define VALUE_P 696 +#define VALUES 697 +#define VARCHAR 698 +#define VARIADIC 699 +#define VARYING 700 +#define VERBOSE 701 +#define VERSION_P 702 +#define VIEW 703 +#define VIEWS 704 +#define VOLATILE 705 +#define WHEN 706 +#define WHERE 707 +#define WHITESPACE_P 708 +#define WINDOW 709 +#define WITH 710 +#define WITHIN 711 +#define WITHOUT 712 +#define WORK 713 +#define WRAPPER 714 +#define WRITE_P 715 +#define XML_P 716 +#define XMLATTRIBUTES 717 +#define XMLCONCAT 718 +#define XMLELEMENT 719 +#define XMLEXISTS 720 +#define XMLFOREST 721 +#define XMLNAMESPACES 722 +#define XMLPARSE 723 +#define XMLPI 724 +#define XMLROOT 725 +#define XMLSERIALIZE 726 +#define XMLTABLE 727 +#define YEAR_P 728 +#define YEARS_P 729 +#define YES_P 730 +#define ZONE 731 +#define NOT_LA 732 +#define NULLS_LA 733 +#define WITH_LA 734 +#define POSTFIXOP 735 +#define UMINUS 736 @@ -1270,7 +1272,7 @@ typedef union YYSTYPE PGViewCheckOption viewcheckoption; } /* Line 187 of yacc.c. */ -#line 1274 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 1276 "third_party/libpg_query/grammar/grammar_out.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -1295,7 +1297,7 @@ typedef struct YYLTYPE /* Line 216 of yacc.c. */ -#line 1299 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 1301 "third_party/libpg_query/grammar/grammar_out.cpp" #ifdef short # undef short @@ -1512,20 +1514,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 596 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 52642 +#define YYLAST 52725 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 502 +#define YYNTOKENS 503 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 383 +#define YYNNTS 384 /* YYNRULES -- Number of rules. */ -#define YYNRULES 1801 +#define YYNRULES 1804 /* YYNRULES -- Number of states. */ -#define YYNSTATES 2978 +#define YYNSTATES 2983 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 735 +#define YYMAXUTOK 736 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -1536,16 +1538,16 @@ static const yytype_uint16 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 499, 2, 487, 2, 2, - 492, 493, 485, 483, 496, 484, 494, 486, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 501, 495, - 479, 481, 480, 500, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 500, 2, 488, 2, 2, + 493, 494, 486, 484, 497, 485, 495, 487, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 502, 496, + 480, 482, 481, 501, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 490, 2, 491, 488, 2, 2, 2, 2, 2, + 2, 491, 2, 492, 489, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 497, 2, 498, 2, 2, 2, 2, + 2, 2, 2, 498, 2, 499, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1606,7 +1608,7 @@ static const yytype_uint16 yytranslate[] = 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 482, 489 + 475, 476, 477, 478, 479, 483, 490 }; #if YYDEBUG @@ -1618,720 +1620,721 @@ static const yytype_uint16 yyprhs[] = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, - 80, 85, 92, 97, 104, 109, 116, 121, 128, 130, - 133, 137, 140, 142, 146, 149, 153, 155, 159, 162, - 168, 172, 179, 184, 191, 198, 205, 211, 217, 224, - 234, 239, 245, 253, 260, 265, 274, 279, 282, 287, - 291, 298, 303, 306, 309, 312, 315, 317, 320, 321, - 323, 326, 329, 332, 334, 338, 343, 346, 348, 349, - 354, 358, 361, 366, 372, 379, 388, 395, 404, 411, - 420, 423, 428, 432, 438, 440, 441, 443, 445, 446, - 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, - 468, 472, 474, 476, 478, 480, 482, 484, 487, 489, - 491, 494, 497, 501, 503, 505, 508, 513, 521, 523, - 528, 533, 541, 544, 546, 550, 555, 559, 560, 562, - 563, 566, 570, 576, 585, 591, 592, 598, 604, 612, - 615, 616, 618, 620, 622, 626, 629, 630, 632, 633, - 635, 639, 641, 645, 647, 651, 654, 661, 668, 677, - 684, 693, 700, 709, 716, 725, 734, 745, 754, 765, - 767, 768, 773, 780, 782, 785, 787, 789, 790, 792, - 795, 798, 800, 803, 806, 808, 811, 815, 818, 821, - 824, 827, 831, 835, 839, 841, 845, 847, 848, 850, - 853, 856, 866, 879, 891, 892, 895, 897, 899, 901, - 903, 905, 907, 911, 912, 914, 917, 919, 921, 924, - 927, 931, 933, 935, 938, 941, 943, 946, 950, 956, - 960, 963, 969, 975, 978, 982, 984, 986, 989, 992, - 993, 998, 999, 1003, 1008, 1013, 1014, 1018, 1021, 1022, - 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, - 1046, 1050, 1054, 1056, 1059, 1062, 1065, 1068, 1071, 1074, - 1075, 1079, 1083, 1087, 1088, 1090, 1093, 1095, 1098, 1101, - 1104, 1107, 1112, 1114, 1118, 1120, 1124, 1126, 1128, 1130, - 1132, 1136, 1138, 1141, 1142, 1144, 1145, 1147, 1151, 1152, - 1155, 1156, 1160, 1164, 1166, 1172, 1176, 1178, 1182, 1184, - 1189, 1195, 1201, 1208, 1212, 1220, 1225, 1237, 1239, 1243, - 1246, 1249, 1252, 1253, 1257, 1259, 1261, 1264, 1267, 1270, - 1273, 1275, 1276, 1278, 1281, 1287, 1296, 1298, 1299, 1302, - 1305, 1308, 1311, 1315, 1320, 1323, 1325, 1327, 1329, 1333, - 1336, 1338, 1340, 1342, 1345, 1349, 1363, 1380, 1382, 1385, - 1386, 1388, 1389, 1391, 1392, 1395, 1396, 1398, 1399, 1407, - 1418, 1421, 1425, 1426, 1431, 1434, 1438, 1441, 1445, 1448, - 1451, 1454, 1457, 1460, 1463, 1465, 1467, 1468, 1478, 1490, - 1503, 1518, 1522, 1527, 1532, 1533, 1538, 1544, 1550, 1555, - 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1575, 1577, 1581, - 1583, 1584, 1587, 1590, 1594, 1598, 1602, 1604, 1608, 1612, - 1615, 1619, 1623, 1627, 1631, 1633, 1635, 1637, 1639, 1643, - 1649, 1651, 1653, 1655, 1657, 1661, 1673, 1683, 1685, 1687, - 1691, 1692, 1694, 1698, 1700, 1701, 1703, 1704, 1706, 1707, - 1709, 1713, 1715, 1717, 1719, 1723, 1724, 1727, 1730, 1731, - 1734, 1735, 1737, 1738, 1740, 1742, 1744, 1748, 1752, 1754, - 1756, 1760, 1764, 1768, 1772, 1777, 1781, 1784, 1786, 1788, - 1790, 1792, 1794, 1798, 1805, 1807, 1809, 1812, 1816, 1819, - 1821, 1827, 1831, 1832, 1834, 1836, 1838, 1840, 1849, 1851, - 1853, 1857, 1861, 1863, 1866, 1871, 1876, 1879, 1883, 1889, - 1895, 1897, 1899, 1910, 1921, 1923, 1926, 1931, 1936, 1941, - 1944, 1947, 1951, 1953, 1957, 1964, 1967, 1968, 1972, 1976, - 1981, 1986, 1991, 1996, 2000, 2003, 2005, 2007, 2008, 2010, - 2012, 2013, 2015, 2021, 2023, 2024, 2027, 2030, 2031, 2033, - 2034, 2038, 2040, 2044, 2049, 2053, 2055, 2057, 2058, 2061, - 2064, 2065, 2068, 2071, 2073, 2075, 2077, 2078, 2081, 2086, - 2092, 2097, 2100, 2104, 2107, 2110, 2113, 2116, 2118, 2121, - 2125, 2126, 2128, 2129, 2135, 2137, 2142, 2149, 2152, 2154, - 2155, 2160, 2161, 2163, 2165, 2168, 2171, 2174, 2176, 2178, - 2181, 2184, 2186, 2188, 2190, 2192, 2194, 2196, 2200, 2201, - 2203, 2207, 2209, 2211, 2213, 2215, 2217, 2220, 2225, 2230, - 2236, 2238, 2240, 2243, 2244, 2246, 2250, 2252, 2253, 2255, - 2258, 2262, 2265, 2270, 2273, 2277, 2280, 2281, 2283, 2286, - 2287, 2292, 2298, 2301, 2302, 2304, 2308, 2312, 2316, 2320, - 2324, 2328, 2330, 2335, 2339, 2344, 2350, 2355, 2361, 2366, - 2372, 2375, 2380, 2382, 2384, 2385, 2387, 2392, 2398, 2403, - 2404, 2407, 2410, 2413, 2415, 2417, 2418, 2423, 2426, 2428, - 2431, 2434, 2439, 2442, 2449, 2452, 2454, 2458, 2463, 2464, - 2467, 2468, 2471, 2472, 2474, 2478, 2482, 2485, 2486, 2489, - 2494, 2496, 2498, 2501, 2505, 2511, 2518, 2521, 2525, 2531, - 2537, 2541, 2546, 2547, 2549, 2551, 2553, 2555, 2557, 2560, - 2565, 2567, 2569, 2571, 2573, 2576, 2580, 2581, 2583, 2585, - 2587, 2589, 2591, 2594, 2597, 2600, 2603, 2606, 2608, 2612, - 2613, 2615, 2617, 2619, 2621, 2627, 2630, 2632, 2634, 2636, - 2638, 2643, 2645, 2648, 2651, 2653, 2657, 2661, 2664, 2666, - 2667, 2673, 2676, 2682, 2685, 2687, 2691, 2695, 2696, 2698, - 2700, 2702, 2704, 2706, 2708, 2710, 2712, 2714, 2716, 2718, - 2720, 2722, 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2738, - 2740, 2742, 2744, 2748, 2752, 2756, 2760, 2764, 2768, 2772, - 2773, 2775, 2779, 2783, 2789, 2792, 2795, 2799, 2803, 2807, - 2811, 2815, 2819, 2823, 2827, 2831, 2835, 2839, 2843, 2847, - 2850, 2853, 2857, 2861, 2864, 2867, 2871, 2875, 2881, 2886, - 2893, 2897, 2903, 2908, 2915, 2920, 2927, 2933, 2941, 2945, - 2948, 2953, 2957, 2960, 2962, 2966, 2970, 2974, 2978, 2982, - 2986, 2991, 2995, 3000, 3004, 3009, 3015, 3022, 3029, 3037, - 3044, 3052, 3059, 3067, 3071, 3076, 3081, 3088, 3090, 3095, - 3097, 3101, 3104, 3107, 3111, 3115, 3119, 3123, 3127, 3131, - 3135, 3139, 3143, 3147, 3151, 3155, 3159, 3162, 3165, 3171, - 3178, 3185, 3193, 3195, 3197, 3200, 3203, 3206, 3211, 3213, - 3216, 3218, 3221, 3224, 3229, 3233, 3240, 3248, 3258, 3266, - 3274, 3279, 3284, 3286, 3288, 3290, 3296, 3298, 3300, 3305, - 3307, 3312, 3314, 3319, 3321, 3326, 3328, 3330, 3332, 3334, - 3336, 3338, 3345, 3352, 3357, 3362, 3367, 3372, 3379, 3385, - 3391, 3397, 3402, 3409, 3414, 3420, 3421, 3427, 3428, 3431, - 3432, 3434, 3438, 3442, 3445, 3448, 3449, 3456, 3458, 3459, - 3463, 3464, 3467, 3470, 3471, 3473, 3478, 3481, 3484, 3487, - 3490, 3493, 3498, 3502, 3504, 3510, 3514, 3516, 3520, 3522, - 3524, 3526, 3528, 3530, 3532, 3534, 3536, 3538, 3540, 3542, - 3544, 3546, 3548, 3550, 3552, 3554, 3556, 3561, 3563, 3568, - 3570, 3575, 3577, 3580, 3582, 3585, 3587, 3590, 3592, 3596, - 3598, 3602, 3604, 3605, 3607, 3611, 3613, 3617, 3621, 3623, - 3627, 3631, 3632, 3634, 3636, 3638, 3640, 3642, 3644, 3646, - 3648, 3650, 3652, 3657, 3661, 3664, 3668, 3669, 3673, 3677, - 3680, 3683, 3685, 3686, 3689, 3692, 3696, 3699, 3701, 3703, - 3707, 3713, 3715, 3718, 3723, 3726, 3727, 3729, 3730, 3732, - 3735, 3738, 3742, 3748, 3750, 3751, 3753, 3756, 3757, 3760, - 3762, 3763, 3765, 3766, 3768, 3772, 3776, 3779, 3781, 3785, - 3791, 3796, 3799, 3801, 3802, 3806, 3808, 3812, 3817, 3820, - 3821, 3823, 3827, 3829, 3832, 3834, 3838, 3840, 3842, 3844, - 3847, 3849, 3851, 3854, 3856, 3858, 3861, 3869, 3872, 3878, - 3882, 3886, 3888, 3890, 3892, 3894, 3896, 3898, 3900, 3902, - 3904, 3906, 3908, 3910, 3912, 3914, 3916, 3918, 3920, 3922, - 3924, 3926, 3929, 3932, 3936, 3940, 3941, 3943, 3945, 3947, - 3949, 3951, 3953, 3955, 3963, 3965, 3968, 3972, 3975, 3976, - 3979, 3980, 3985, 3993, 3996, 3997, 3999, 4001, 4003, 4005, - 4012, 4017, 4024, 4029, 4036, 4045, 4050, 4057, 4059, 4061, - 4063, 4065, 4067, 4070, 4072, 4075, 4077, 4079, 4081, 4085, - 4089, 4093, 4097, 4100, 4103, 4105, 4109, 4111, 4113, 4115, - 4117, 4121, 4123, 4125, 4126, 4128, 4130, 4132, 4134, 4138, - 4147, 4149, 4150, 4152, 4156, 4160, 4170, 4183, 4187, 4188, - 4190, 4192, 4194, 4196, 4198, 4200, 4202, 4204, 4206, 4208, - 4210, 4212, 4214, 4216, 4218, 4220, 4222, 4224, 4226, 4228, - 4230, 4232, 4234, 4236, 4238, 4240, 4242, 4244, 4246, 4248, - 4250, 4252, 4254, 4256, 4258, 4260, 4262, 4264, 4266, 4268, - 4270, 4272, 4274, 4276, 4278, 4280, 4282, 4284, 4286, 4288, - 4290, 4292, 4294, 4296, 4298, 4300, 4302, 4304, 4306, 4308, - 4310, 4312, 4314, 4316, 4318, 4320, 4322, 4324, 4326, 4328, - 4330, 4332, 4334, 4336, 4338, 4340, 4342, 4344, 4346, 4348, - 4350, 4352, 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, - 4370, 4372, 4374, 4376, 4378, 4380, 4382, 4384, 4386, 4388, - 4390, 4392, 4394, 4396, 4398, 4400, 4402, 4404, 4406, 4408, - 4410, 4412, 4414, 4416, 4418, 4420, 4422, 4424, 4426, 4428, - 4430, 4432, 4434, 4436, 4438, 4440, 4442, 4444, 4446, 4448, - 4450, 4452, 4454, 4456, 4458, 4460, 4462, 4464, 4466, 4468, - 4470, 4472, 4474, 4476, 4478, 4480, 4482, 4484, 4486, 4488, - 4490, 4492, 4494, 4496, 4498, 4500, 4502, 4504, 4506, 4508, - 4510, 4512, 4514, 4516, 4518, 4520, 4522, 4524, 4526, 4528, - 4530, 4532, 4534, 4536, 4538, 4540, 4542, 4544, 4546, 4548, - 4550, 4552, 4554, 4556, 4558, 4560, 4562, 4564, 4566, 4568, - 4570, 4572, 4574, 4576, 4578, 4580, 4582, 4584, 4586, 4588, - 4590, 4592, 4594, 4596, 4598, 4600, 4602, 4604, 4606, 4608, - 4610, 4612, 4614, 4616, 4618, 4620, 4622, 4624, 4626, 4628, - 4630, 4632, 4634, 4636, 4638, 4640, 4642, 4644, 4646, 4648, - 4650, 4652, 4654, 4656, 4658, 4660, 4662, 4664, 4666, 4668, - 4670, 4672, 4674, 4676, 4678, 4680, 4682, 4684, 4686, 4688, - 4690, 4692, 4694, 4696, 4698, 4700, 4702, 4704, 4706, 4708, - 4710, 4712, 4714, 4716, 4718, 4720, 4722, 4724, 4726, 4728, - 4730, 4732, 4734, 4736, 4738, 4740, 4742, 4744, 4746, 4748, - 4750, 4752, 4754, 4756, 4758, 4760, 4762, 4764, 4766, 4768, - 4770, 4772, 4774, 4776, 4778, 4780, 4782, 4784, 4786, 4788, - 4790, 4792, 4794, 4796, 4798, 4800, 4802, 4804, 4806, 4808, - 4810, 4812, 4814, 4816, 4818, 4820, 4822, 4824, 4826, 4828, - 4830, 4832, 4834, 4836, 4838, 4840, 4842, 4844, 4846, 4848, - 4850, 4852, 4854, 4856, 4858, 4860, 4862, 4864, 4866, 4868, - 4870, 4872, 4874, 4876, 4878, 4880, 4882, 4884, 4886, 4888, - 4890, 4892, 4894, 4896, 4898, 4900, 4902, 4904, 4906, 4908, - 4910, 4912, 4914, 4916, 4918, 4920, 4922, 4924, 4926, 4928, - 4930, 4932, 4934, 4936, 4938, 4940, 4942, 4944, 4946, 4948, - 4950, 4952, 4954, 4956, 4958, 4960, 4962, 4964, 4966, 4968, - 4970, 4972, 4974, 4976, 4978, 4980, 4982, 4984, 4986, 4988, - 4990, 4992, 4994, 4996, 4998, 5000, 5002, 5004, 5006, 5008, - 5010, 5012, 5014, 5016, 5018, 5020, 5022, 5024, 5026, 5028, - 5030, 5032, 5034, 5036, 5038, 5040, 5042, 5044, 5046, 5048, - 5050, 5052, 5054, 5056, 5058, 5060, 5062, 5064, 5066, 5068, - 5070, 5072, 5074, 5076, 5078, 5080, 5082, 5084, 5086, 5088, - 5090, 5092, 5094, 5096, 5098, 5100, 5102, 5104, 5106, 5108, - 5110, 5112, 5114, 5116, 5118, 5120, 5122, 5124, 5126, 5128, - 5130, 5132, 5134, 5136, 5138, 5140, 5142, 5144, 5146, 5148, - 5150, 5152, 5154, 5156, 5158, 5160, 5162, 5164, 5166, 5168, - 5170, 5172, 5174, 5176, 5178, 5180, 5182, 5184, 5186, 5188, - 5190, 5192, 5194, 5196, 5198, 5200, 5202, 5204, 5206, 5208, - 5210, 5212, 5214, 5216, 5218, 5220, 5222, 5224, 5226, 5228, - 5230, 5232, 5234, 5236, 5238, 5240, 5242, 5244, 5246, 5248, - 5250, 5252, 5254, 5256, 5258, 5260, 5262, 5264, 5266, 5268, - 5270, 5272, 5274, 5276, 5278, 5280, 5282, 5284, 5286, 5288, - 5290, 5292, 5294, 5296, 5298, 5300, 5302, 5304, 5306, 5308, - 5310, 5312 + 80, 87, 92, 99, 104, 111, 120, 125, 132, 134, + 136, 138, 140, 142, 145, 147, 150, 152, 154, 156, + 160, 164, 168, 172, 175, 178, 180, 184, 186, 188, + 190, 192, 196, 198, 200, 201, 203, 205, 207, 209, + 213, 216, 221, 225, 231, 233, 234, 236, 238, 239, + 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, + 261, 265, 267, 269, 271, 273, 275, 277, 280, 282, + 284, 286, 288, 292, 296, 298, 301, 306, 311, 314, + 318, 324, 330, 332, 334, 346, 358, 360, 363, 368, + 373, 378, 381, 384, 388, 390, 394, 401, 404, 405, + 409, 413, 418, 423, 428, 433, 437, 440, 442, 444, + 445, 447, 449, 450, 452, 458, 460, 461, 464, 467, + 468, 470, 471, 475, 477, 481, 486, 490, 492, 494, + 495, 498, 501, 502, 505, 508, 510, 512, 514, 515, + 518, 523, 529, 534, 537, 541, 544, 547, 550, 553, + 555, 558, 562, 563, 565, 566, 572, 574, 579, 586, + 589, 591, 592, 597, 598, 600, 602, 605, 608, 611, + 613, 615, 618, 621, 623, 625, 627, 629, 631, 633, + 637, 638, 640, 644, 646, 648, 650, 652, 654, 657, + 662, 667, 673, 675, 677, 680, 681, 684, 685, 687, + 691, 693, 694, 696, 699, 703, 706, 711, 714, 718, + 721, 722, 724, 727, 728, 733, 739, 742, 743, 745, + 749, 753, 757, 761, 765, 769, 771, 776, 780, 785, + 791, 796, 802, 807, 813, 816, 821, 823, 825, 826, + 828, 833, 839, 844, 845, 848, 851, 854, 856, 858, + 859, 864, 867, 869, 872, 875, 880, 883, 890, 893, + 895, 899, 904, 905, 908, 909, 912, 913, 915, 919, + 923, 926, 927, 930, 935, 937, 939, 942, 946, 952, + 959, 962, 966, 972, 978, 982, 987, 988, 990, 992, + 994, 996, 998, 1001, 1006, 1008, 1010, 1012, 1014, 1017, + 1021, 1022, 1024, 1026, 1028, 1030, 1032, 1035, 1038, 1041, + 1044, 1047, 1049, 1053, 1054, 1056, 1058, 1060, 1062, 1068, + 1071, 1073, 1075, 1077, 1079, 1084, 1086, 1089, 1092, 1094, + 1098, 1102, 1105, 1107, 1108, 1114, 1117, 1123, 1126, 1128, + 1132, 1136, 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, + 1153, 1155, 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, + 1173, 1175, 1177, 1179, 1181, 1183, 1185, 1189, 1193, 1197, + 1201, 1205, 1209, 1213, 1214, 1216, 1220, 1224, 1230, 1233, + 1236, 1240, 1244, 1248, 1252, 1256, 1260, 1264, 1268, 1272, + 1276, 1280, 1284, 1288, 1291, 1294, 1298, 1302, 1305, 1308, + 1312, 1316, 1322, 1327, 1334, 1338, 1344, 1349, 1356, 1361, + 1368, 1374, 1382, 1386, 1389, 1394, 1398, 1401, 1403, 1407, + 1411, 1415, 1419, 1423, 1427, 1432, 1436, 1441, 1445, 1450, + 1456, 1463, 1470, 1478, 1485, 1493, 1500, 1508, 1512, 1517, + 1522, 1529, 1531, 1536, 1538, 1542, 1545, 1548, 1552, 1556, + 1560, 1564, 1568, 1572, 1576, 1580, 1584, 1588, 1592, 1596, + 1600, 1603, 1606, 1612, 1619, 1626, 1634, 1636, 1638, 1641, + 1644, 1647, 1652, 1654, 1657, 1659, 1662, 1665, 1670, 1674, + 1681, 1689, 1699, 1707, 1715, 1720, 1725, 1727, 1729, 1731, + 1737, 1739, 1741, 1746, 1748, 1753, 1755, 1760, 1762, 1767, + 1769, 1771, 1773, 1775, 1777, 1779, 1786, 1793, 1798, 1803, + 1808, 1813, 1820, 1826, 1832, 1838, 1843, 1850, 1855, 1861, + 1862, 1868, 1869, 1872, 1873, 1875, 1879, 1883, 1886, 1889, + 1890, 1897, 1899, 1900, 1904, 1905, 1908, 1911, 1912, 1914, + 1919, 1922, 1925, 1928, 1931, 1934, 1939, 1943, 1945, 1951, + 1955, 1957, 1961, 1963, 1965, 1967, 1969, 1971, 1973, 1975, + 1977, 1979, 1981, 1983, 1985, 1987, 1989, 1991, 1993, 1995, + 1997, 2002, 2004, 2009, 2011, 2016, 2018, 2021, 2023, 2026, + 2028, 2031, 2033, 2037, 2039, 2043, 2045, 2046, 2048, 2052, + 2054, 2058, 2062, 2064, 2068, 2072, 2073, 2075, 2077, 2079, + 2081, 2083, 2085, 2087, 2089, 2091, 2093, 2098, 2102, 2105, + 2109, 2110, 2114, 2118, 2121, 2124, 2126, 2127, 2130, 2133, + 2137, 2140, 2142, 2144, 2148, 2154, 2156, 2159, 2164, 2167, + 2168, 2170, 2171, 2173, 2176, 2179, 2183, 2189, 2191, 2192, + 2194, 2197, 2198, 2201, 2203, 2204, 2206, 2207, 2209, 2213, + 2217, 2220, 2222, 2226, 2232, 2237, 2240, 2242, 2243, 2247, + 2249, 2253, 2258, 2261, 2262, 2264, 2268, 2270, 2273, 2275, + 2279, 2281, 2283, 2285, 2288, 2290, 2292, 2295, 2297, 2299, + 2302, 2310, 2313, 2319, 2323, 2327, 2329, 2331, 2333, 2335, + 2337, 2339, 2341, 2343, 2345, 2347, 2349, 2351, 2353, 2355, + 2357, 2359, 2361, 2363, 2365, 2367, 2370, 2373, 2377, 2381, + 2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396, 2403, 2412, + 2419, 2428, 2435, 2444, 2449, 2453, 2467, 2484, 2486, 2489, + 2490, 2492, 2493, 2495, 2496, 2499, 2500, 2502, 2503, 2506, + 2509, 2512, 2515, 2518, 2521, 2523, 2525, 2526, 2535, 2540, + 2547, 2552, 2559, 2564, 2571, 2576, 2583, 2585, 2588, 2592, + 2595, 2597, 2601, 2604, 2608, 2610, 2614, 2617, 2623, 2627, + 2634, 2639, 2646, 2653, 2660, 2666, 2672, 2679, 2689, 2694, + 2700, 2708, 2715, 2720, 2729, 2734, 2737, 2742, 2746, 2753, + 2758, 2761, 2764, 2767, 2770, 2772, 2775, 2776, 2778, 2781, + 2784, 2787, 2789, 2793, 2798, 2801, 2803, 2804, 2811, 2813, + 2815, 2818, 2822, 2827, 2833, 2839, 2844, 2851, 2853, 2855, + 2857, 2859, 2861, 2863, 2864, 2866, 2870, 2872, 2873, 2876, + 2881, 2887, 2896, 2898, 2899, 2901, 2905, 2917, 2927, 2929, + 2931, 2935, 2936, 2938, 2942, 2944, 2945, 2947, 2948, 2950, + 2951, 2953, 2957, 2959, 2961, 2963, 2967, 2968, 2971, 2974, + 2975, 2978, 2979, 2981, 2982, 2984, 2986, 2988, 2992, 2996, + 2998, 3000, 3004, 3008, 3012, 3016, 3021, 3025, 3028, 3030, + 3032, 3034, 3036, 3038, 3042, 3045, 3049, 3053, 3057, 3059, + 3063, 3067, 3070, 3074, 3078, 3082, 3086, 3088, 3090, 3092, + 3094, 3098, 3104, 3106, 3108, 3110, 3112, 3116, 3119, 3122, + 3124, 3132, 3134, 3137, 3141, 3144, 3145, 3148, 3149, 3156, + 3163, 3172, 3179, 3188, 3195, 3204, 3211, 3220, 3229, 3240, + 3249, 3260, 3262, 3263, 3271, 3282, 3285, 3289, 3290, 3295, + 3305, 3317, 3330, 3345, 3349, 3354, 3359, 3360, 3365, 3373, + 3376, 3377, 3379, 3381, 3383, 3385, 3391, 3400, 3402, 3403, + 3406, 3409, 3412, 3415, 3419, 3424, 3427, 3429, 3431, 3433, + 3437, 3443, 3447, 3448, 3450, 3452, 3454, 3456, 3461, 3468, + 3470, 3473, 3475, 3477, 3478, 3480, 3483, 3486, 3488, 3491, + 3494, 3496, 3499, 3503, 3506, 3509, 3512, 3515, 3519, 3523, + 3527, 3529, 3533, 3535, 3536, 3538, 3541, 3544, 3547, 3552, + 3555, 3558, 3562, 3564, 3566, 3574, 3576, 3581, 3586, 3594, + 3597, 3599, 3603, 3608, 3612, 3613, 3615, 3616, 3619, 3623, + 3629, 3638, 3644, 3645, 3651, 3657, 3665, 3668, 3669, 3671, + 3673, 3675, 3679, 3682, 3683, 3685, 3686, 3688, 3692, 3694, + 3698, 3700, 3704, 3707, 3711, 3721, 3734, 3738, 3739, 3742, + 3744, 3746, 3748, 3751, 3755, 3765, 3778, 3790, 3791, 3794, + 3796, 3798, 3800, 3802, 3804, 3806, 3810, 3811, 3813, 3816, + 3818, 3820, 3823, 3826, 3830, 3832, 3834, 3837, 3840, 3842, + 3845, 3849, 3855, 3859, 3862, 3868, 3874, 3877, 3881, 3883, + 3885, 3888, 3891, 3892, 3897, 3898, 3902, 3907, 3912, 3913, + 3917, 3920, 3921, 3925, 3927, 3929, 3931, 3933, 3935, 3937, + 3939, 3941, 3943, 3945, 3949, 3953, 3955, 3958, 3961, 3964, + 3967, 3970, 3973, 3974, 3978, 3982, 3986, 3987, 3989, 3992, + 3994, 3997, 4000, 4003, 4006, 4011, 4013, 4017, 4019, 4023, + 4025, 4027, 4029, 4031, 4035, 4037, 4040, 4041, 4043, 4044, + 4046, 4050, 4051, 4054, 4055, 4059, 4063, 4065, 4071, 4075, + 4077, 4081, 4083, 4088, 4094, 4100, 4107, 4111, 4119, 4124, + 4136, 4138, 4142, 4145, 4148, 4151, 4152, 4156, 4158, 4160, + 4163, 4166, 4169, 4172, 4174, 4175, 4177, 4180, 4183, 4187, + 4190, 4194, 4196, 4198, 4200, 4202, 4204, 4206, 4208, 4210, + 4212, 4214, 4216, 4218, 4220, 4222, 4224, 4226, 4228, 4230, + 4232, 4234, 4236, 4238, 4240, 4242, 4244, 4246, 4248, 4250, + 4252, 4254, 4256, 4258, 4260, 4262, 4264, 4266, 4268, 4270, + 4272, 4274, 4276, 4278, 4280, 4282, 4284, 4286, 4288, 4290, + 4292, 4294, 4296, 4298, 4300, 4302, 4304, 4306, 4308, 4310, + 4312, 4314, 4316, 4318, 4320, 4322, 4324, 4326, 4328, 4330, + 4332, 4334, 4336, 4338, 4340, 4342, 4344, 4346, 4348, 4350, + 4352, 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, 4370, + 4372, 4374, 4376, 4378, 4380, 4382, 4384, 4386, 4388, 4390, + 4392, 4394, 4396, 4398, 4400, 4402, 4404, 4406, 4408, 4410, + 4412, 4414, 4416, 4418, 4420, 4422, 4424, 4426, 4428, 4430, + 4432, 4434, 4436, 4438, 4440, 4442, 4444, 4446, 4448, 4450, + 4452, 4454, 4456, 4458, 4460, 4462, 4464, 4466, 4468, 4470, + 4472, 4474, 4476, 4478, 4480, 4482, 4484, 4486, 4488, 4490, + 4492, 4494, 4496, 4498, 4500, 4502, 4504, 4506, 4508, 4510, + 4512, 4514, 4516, 4518, 4520, 4522, 4524, 4526, 4528, 4530, + 4532, 4534, 4536, 4538, 4540, 4542, 4544, 4546, 4548, 4550, + 4552, 4554, 4556, 4558, 4560, 4562, 4564, 4566, 4568, 4570, + 4572, 4574, 4576, 4578, 4580, 4582, 4584, 4586, 4588, 4590, + 4592, 4594, 4596, 4598, 4600, 4602, 4604, 4606, 4608, 4610, + 4612, 4614, 4616, 4618, 4620, 4622, 4624, 4626, 4628, 4630, + 4632, 4634, 4636, 4638, 4640, 4642, 4644, 4646, 4648, 4650, + 4652, 4654, 4656, 4658, 4660, 4662, 4664, 4666, 4668, 4670, + 4672, 4674, 4676, 4678, 4680, 4682, 4684, 4686, 4688, 4690, + 4692, 4694, 4696, 4698, 4700, 4702, 4704, 4706, 4708, 4710, + 4712, 4714, 4716, 4718, 4720, 4722, 4724, 4726, 4728, 4730, + 4732, 4734, 4736, 4738, 4740, 4742, 4744, 4746, 4748, 4750, + 4752, 4754, 4756, 4758, 4760, 4762, 4764, 4766, 4768, 4770, + 4772, 4774, 4776, 4778, 4780, 4782, 4784, 4786, 4788, 4790, + 4792, 4794, 4796, 4798, 4800, 4802, 4804, 4806, 4808, 4810, + 4812, 4814, 4816, 4818, 4820, 4822, 4824, 4826, 4828, 4830, + 4832, 4834, 4836, 4838, 4840, 4842, 4844, 4846, 4848, 4850, + 4852, 4854, 4856, 4858, 4860, 4862, 4864, 4866, 4868, 4870, + 4872, 4874, 4876, 4878, 4880, 4882, 4884, 4886, 4888, 4890, + 4892, 4894, 4896, 4898, 4900, 4902, 4904, 4906, 4908, 4910, + 4912, 4914, 4916, 4918, 4920, 4922, 4924, 4926, 4928, 4930, + 4932, 4934, 4936, 4938, 4940, 4942, 4944, 4946, 4948, 4950, + 4952, 4954, 4956, 4958, 4960, 4962, 4964, 4966, 4968, 4970, + 4972, 4974, 4976, 4978, 4980, 4982, 4984, 4986, 4988, 4990, + 4992, 4994, 4996, 4998, 5000, 5002, 5004, 5006, 5008, 5010, + 5012, 5014, 5016, 5018, 5020, 5022, 5024, 5026, 5028, 5030, + 5032, 5034, 5036, 5038, 5040, 5042, 5044, 5046, 5048, 5050, + 5052, 5054, 5056, 5058, 5060, 5062, 5064, 5066, 5068, 5070, + 5072, 5074, 5076, 5078, 5080, 5082, 5084, 5086, 5088, 5090, + 5092, 5094, 5096, 5098, 5100, 5102, 5104, 5106, 5108, 5110, + 5112, 5114, 5116, 5118, 5120, 5122, 5124, 5126, 5128, 5130, + 5132, 5134, 5136, 5138, 5140, 5142, 5144, 5146, 5148, 5150, + 5152, 5154, 5156, 5158, 5160, 5162, 5164, 5166, 5168, 5170, + 5172, 5174, 5176, 5178, 5180, 5182, 5184, 5186, 5188, 5190, + 5192, 5194, 5196, 5198, 5200, 5202, 5204, 5206, 5208, 5210, + 5212, 5214, 5216, 5218, 5220, 5222, 5224, 5226, 5228, 5230, + 5232, 5234, 5236, 5238, 5240, 5242, 5244, 5246, 5248, 5250, + 5252, 5254, 5256, 5258, 5260, 5262, 5264, 5266, 5268, 5270, + 5272, 5274, 5276, 5278, 5280, 5282, 5284, 5286, 5288, 5290, + 5292, 5294, 5296, 5298, 5300, 5302, 5304, 5306, 5308, 5310, + 5312, 5314, 5316, 5318, 5320 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 503, 0, -1, 504, -1, 504, 495, 505, -1, 505, - -1, 520, -1, 555, -1, 506, -1, 534, -1, 636, - -1, 663, -1, 643, -1, 623, -1, 873, -1, 660, - -1, 863, -1, 608, -1, 562, -1, 626, -1, 859, - -1, 866, -1, 876, -1, 521, -1, 517, -1, 518, - -1, 616, -1, 535, -1, 532, -1, 519, -1, 664, - -1, 553, -1, 668, -1, 627, -1, 667, -1, 631, - -1, 613, -1, 637, -1, 610, -1, 629, -1, -1, - 29, 400, 733, 514, -1, 29, 400, 187, 150, 733, - 514, -1, 29, 197, 840, 514, -1, 29, 197, 187, - 150, 840, 514, -1, 29, 365, 840, 514, -1, 29, - 365, 187, 150, 840, 514, -1, 29, 447, 840, 514, - -1, 29, 447, 187, 150, 840, 514, -1, 509, -1, - 507, 509, -1, 371, 115, 775, -1, 135, 115, -1, - 343, -1, 343, 557, 558, -1, 371, 559, -1, 371, - 172, 607, -1, 513, -1, 510, 496, 513, -1, 23, - 587, -1, 23, 187, 268, 150, 587, -1, 23, 75, - 587, -1, 23, 75, 187, 268, 150, 587, -1, 29, - 554, 848, 508, -1, 29, 554, 848, 135, 268, 273, - -1, 29, 554, 848, 371, 268, 273, -1, 29, 554, - 848, 371, 387, 561, -1, 29, 554, 848, 371, 575, - -1, 29, 554, 848, 341, 575, -1, 29, 554, 848, - 371, 390, 848, -1, 29, 554, 848, 23, 172, 607, - 36, 186, 565, -1, 29, 554, 848, 507, -1, 29, - 554, 848, 135, 186, -1, 29, 554, 848, 135, 186, - 187, 150, -1, 135, 554, 187, 150, 848, 870, -1, - 135, 554, 848, 870, -1, 29, 554, 848, 516, 422, - 745, 742, 512, -1, 29, 554, 848, 515, -1, 23, - 577, -1, 29, 86, 842, 563, -1, 438, 86, 842, - -1, 135, 86, 187, 150, 842, 870, -1, 135, 86, - 842, 870, -1, 371, 240, -1, 371, 431, -1, 371, - 575, -1, 341, 575, -1, 515, -1, 435, 775, -1, - -1, 570, -1, 371, 570, -1, 23, 570, -1, 135, - 585, -1, 511, -1, 514, 496, 511, -1, 287, 492, - 510, 493, -1, 371, 107, -1, 371, -1, -1, 152, - 108, 847, 650, -1, 193, 108, 847, -1, 310, 848, - -1, 310, 848, 481, 642, -1, 310, 848, 492, 807, - 493, -1, 29, 400, 733, 371, 357, 842, -1, 29, - 400, 187, 150, 733, 371, 357, 842, -1, 29, 365, - 840, 371, 357, 842, -1, 29, 365, 187, 150, 840, - 371, 357, 842, -1, 29, 447, 840, 371, 357, 842, - -1, 29, 447, 187, 150, 840, 371, 357, 842, -1, - 151, 524, -1, 151, 528, 522, 524, -1, 151, 445, - 524, -1, 151, 492, 527, 493, 524, -1, 445, -1, - -1, 529, -1, 558, -1, -1, 668, -1, 535, -1, - 667, -1, 859, -1, 623, -1, 3, -1, 878, -1, - 882, -1, 525, -1, 847, -1, 530, -1, 527, 496, - 530, -1, 32, -1, 31, -1, 418, -1, 156, -1, - 283, -1, 526, -1, 531, 523, -1, 525, -1, 528, - -1, 233, 533, -1, 208, 533, -1, 164, 208, 533, - -1, 847, -1, 848, -1, 528, 522, -1, 528, 522, - 840, 855, -1, 539, 207, 214, 537, 536, 542, 544, - -1, 668, -1, 296, 545, 440, 668, -1, 492, 549, - 493, 668, -1, 492, 549, 493, 296, 545, 440, 668, - -1, 115, 441, -1, 840, -1, 840, 36, 848, -1, - 492, 551, 493, 739, -1, 283, 86, 842, -1, -1, - 673, -1, -1, 848, 829, -1, 552, 481, 775, -1, - 492, 546, 493, 481, 775, -1, 283, 84, 538, 131, - 433, 371, 550, 739, -1, 283, 84, 538, 131, 269, - -1, -1, 848, 547, 548, 687, 688, -1, 780, 547, - 548, 687, 688, -1, 492, 775, 493, 547, 548, 687, - 688, -1, 345, 832, -1, -1, 434, -1, 399, -1, - 552, -1, 546, 496, 552, -1, 73, 853, -1, -1, - 853, -1, -1, 540, -1, 549, 496, 540, -1, 541, - -1, 550, 496, 541, -1, 543, -1, 551, 496, 543, - -1, 848, 829, -1, 29, 357, 842, 337, 411, 842, - -1, 29, 400, 733, 337, 411, 842, -1, 29, 400, - 187, 150, 733, 337, 411, 842, -1, 29, 365, 840, - 337, 411, 842, -1, 29, 365, 187, 150, 840, 337, - 411, 842, -1, 29, 447, 840, 337, 411, 842, -1, - 29, 447, 187, 150, 840, 337, 411, 842, -1, 29, - 197, 840, 337, 411, 842, -1, 29, 197, 187, 150, - 840, 337, 411, 842, -1, 29, 400, 733, 337, 554, - 842, 411, 842, -1, 29, 400, 187, 150, 733, 337, - 554, 842, 411, 842, -1, 29, 400, 733, 337, 86, - 842, 411, 842, -1, 29, 400, 187, 150, 733, 337, - 86, 842, 411, 842, -1, 75, -1, -1, 29, 365, - 840, 556, -1, 29, 365, 187, 150, 840, 556, -1, - 559, -1, 556, 559, -1, 454, -1, 478, -1, -1, - 4, -1, 483, 4, -1, 484, 4, -1, 561, -1, - 36, 747, -1, 55, 558, -1, 106, -1, 266, 106, - -1, 196, 560, 558, -1, 246, 558, -1, 254, 558, - -1, 266, 246, -1, 266, 254, -1, 297, 54, 853, - -1, 365, 259, 853, -1, 385, 557, 558, -1, 343, - -1, 343, 557, 558, -1, 54, -1, -1, 846, -1, - 483, 846, -1, 484, 846, -1, 93, 606, 400, 840, - 492, 594, 493, 582, 574, -1, 93, 606, 400, 187, - 268, 150, 840, 492, 594, 493, 582, 574, -1, 93, - 288, 339, 606, 400, 840, 492, 594, 493, 582, 574, - -1, -1, 563, 586, -1, 601, -1, 884, -1, 802, - -1, 558, -1, 847, -1, 267, -1, 492, 556, 493, - -1, -1, 847, -1, 266, 22, -1, 344, -1, 58, - -1, 371, 273, -1, 371, 115, -1, 86, 842, 569, - -1, 569, -1, 581, -1, 73, 853, -1, 268, 273, - -1, 273, -1, 428, 593, -1, 316, 220, 593, -1, - 67, 492, 775, 493, 576, -1, 435, 81, 842, -1, - 115, 776, -1, 172, 607, 36, 186, 565, -1, 331, - 840, 596, 604, 572, -1, 585, 566, -1, 283, 433, - 567, -1, 571, -1, 598, -1, 571, 598, -1, 598, - 571, -1, -1, 287, 492, 588, 493, -1, -1, 283, - 79, 135, -1, 283, 79, 120, 353, -1, 283, 79, - 315, 353, -1, -1, 492, 579, 493, -1, 266, 199, - -1, -1, 86, 842, 602, -1, 602, -1, 78, -1, - 87, -1, 116, -1, 186, -1, 198, -1, 387, -1, - 390, -1, 27, -1, 599, -1, 579, 496, 599, -1, - 435, 197, 590, -1, 117, -1, 268, 117, -1, 201, - 118, -1, 201, 190, -1, 454, 575, -1, 454, 281, - -1, 456, 281, -1, -1, 492, 589, 493, -1, 584, - 195, 578, -1, 584, 147, 578, -1, -1, 857, -1, - 268, 117, -1, 117, -1, 201, 190, -1, 201, 118, - -1, 268, 437, -1, 266, 199, -1, 848, 745, 573, - 597, -1, 570, -1, 588, 496, 570, -1, 592, -1, - 589, 496, 592, -1, 848, -1, 587, -1, 605, -1, - 577, -1, 857, 481, 564, -1, 857, -1, 454, 583, - -1, -1, 603, -1, -1, 848, -1, 492, 600, 493, - -1, -1, 597, 568, -1, -1, 283, 120, 567, -1, - 857, 481, 564, -1, 857, -1, 857, 494, 857, 481, - 564, -1, 857, 494, 857, -1, 595, -1, 600, 496, - 595, -1, 745, -1, 850, 854, 487, 422, -1, 372, - 850, 854, 487, 422, -1, 67, 492, 775, 493, 563, - -1, 428, 492, 600, 493, 593, 563, -1, 428, 580, - 563, -1, 316, 220, 492, 600, 493, 593, 563, -1, - 316, 220, 580, 563, -1, 165, 220, 492, 600, 493, - 331, 840, 596, 604, 572, 563, -1, 591, -1, 603, - 496, 591, -1, 244, 169, -1, 244, 301, -1, 244, - 377, -1, -1, 230, 840, 584, -1, 406, -1, 404, - -1, 234, 406, -1, 234, 404, -1, 174, 406, -1, - 174, 404, -1, 431, -1, -1, 30, -1, 54, 115, - -1, 93, 606, 365, 840, 609, -1, 93, 606, 365, - 187, 268, 150, 840, 609, -1, 556, -1, -1, 611, - 668, -1, 396, 668, -1, 396, 612, -1, 611, 612, - -1, 611, 409, 475, -1, 611, 413, 218, 229, -1, - 611, 27, -1, 375, -1, 125, -1, 848, -1, 612, - 494, 848, -1, 341, 615, -1, 612, -1, 27, -1, - 614, -1, 409, 475, -1, 413, 218, 229, -1, 93, - 622, 197, 619, 620, 283, 840, 618, 492, 551, 493, - 621, 739, -1, 93, 622, 197, 619, 187, 268, 150, - 590, 283, 840, 618, 492, 551, 493, 621, 739, -1, - 848, -1, 435, 617, -1, -1, 82, -1, -1, 590, - -1, -1, 454, 575, -1, -1, 428, -1, -1, 93, - 606, 400, 625, 36, 668, 624, -1, 93, 606, 400, - 187, 268, 150, 625, 36, 668, 624, -1, 454, 107, - -1, 454, 266, 107, -1, -1, 840, 596, 582, 574, - -1, 111, 842, -1, 111, 313, 842, -1, 111, 27, - -1, 111, 313, 27, -1, 19, 628, -1, 47, 628, - -1, 385, 628, -1, 79, 628, -1, 141, 628, -1, - 350, 628, -1, 457, -1, 413, -1, -1, 93, 606, - 447, 840, 596, 621, 36, 668, 630, -1, 93, 288, - 339, 606, 447, 840, 596, 621, 36, 668, 630, -1, - 93, 606, 329, 447, 840, 492, 600, 493, 621, 36, - 668, 630, -1, 93, 288, 339, 606, 329, 447, 840, - 492, 600, 493, 621, 36, 668, 630, -1, 454, 67, - 286, -1, 454, 59, 67, 286, -1, 454, 234, 67, - 286, -1, -1, 436, 633, 635, 522, -1, 436, 633, - 635, 522, 840, -1, 436, 633, 635, 522, 534, -1, - 436, 492, 634, 493, -1, 436, 492, 634, 493, 840, - 855, -1, 528, -1, 445, -1, 167, -1, 169, -1, - 3, -1, 169, -1, -1, 632, -1, 634, 496, 632, - -1, 167, -1, -1, 56, 778, -1, 371, 638, -1, - 371, 234, 638, -1, 371, 369, 638, -1, 371, 174, - 638, -1, 639, -1, 612, 168, 97, -1, 409, 475, - 641, -1, 357, 847, -1, 612, 411, 642, -1, 612, - 481, 642, -1, 612, 411, 115, -1, 612, 481, 115, - -1, 529, -1, 558, -1, 847, -1, 3, -1, 764, - 847, 774, -1, 764, 492, 846, 493, 847, -1, 558, - -1, 115, -1, 234, -1, 640, -1, 642, 496, 640, - -1, 91, 655, 840, 596, 653, 644, 649, 658, 645, - 557, 650, -1, 91, 492, 666, 493, 411, 649, 658, - 557, 650, -1, 168, -1, 411, -1, 647, 122, 847, - -1, -1, 657, -1, 646, 496, 657, -1, 435, -1, - -1, 36, -1, -1, 321, -1, -1, 654, -1, 492, - 659, 493, -1, 529, -1, 558, -1, 485, -1, 492, - 646, 493, -1, -1, 857, 651, -1, 454, 281, -1, - -1, 654, 656, -1, -1, 50, -1, -1, 50, -1, - 281, -1, 167, -1, 121, 648, 847, -1, 273, 648, - 847, -1, 95, -1, 182, -1, 323, 648, 847, -1, - 143, 648, 847, -1, 164, 323, 600, -1, 164, 323, - 485, -1, 164, 268, 273, 600, -1, 164, 273, 600, - -1, 139, 847, -1, 529, -1, 847, -1, 388, -1, - 389, -1, 652, -1, 659, 496, 652, -1, 93, 661, - 840, 662, 36, 775, -1, 170, -1, 241, -1, 492, - 493, -1, 492, 807, 493, -1, 164, 68, -1, 68, - -1, 313, 842, 665, 36, 666, -1, 492, 809, 493, - -1, -1, 668, -1, 535, -1, 667, -1, 859, -1, - 539, 433, 860, 371, 550, 723, 861, 544, -1, 670, - -1, 669, -1, 492, 670, 493, -1, 492, 669, 493, - -1, 672, -1, 671, 684, -1, 671, 683, 715, 690, - -1, 671, 683, 689, 716, -1, 673, 671, -1, 673, - 671, 684, -1, 673, 671, 683, 715, 690, -1, 673, - 671, 683, 689, 716, -1, 672, -1, 669, -1, 364, - 681, 831, 676, 723, 739, 706, 714, 784, 694, -1, - 364, 680, 832, 676, 723, 739, 706, 714, 784, 694, - -1, 722, -1, 400, 733, -1, 671, 427, 679, 671, - -1, 671, 212, 679, 671, -1, 671, 145, 679, 671, - -1, 454, 674, -1, 478, 674, -1, 454, 329, 674, - -1, 675, -1, 674, 496, 675, -1, 842, 855, 36, - 492, 666, 493, -1, 214, 677, -1, -1, 406, 678, - 840, -1, 404, 678, 840, -1, 234, 406, 678, 840, - -1, 234, 404, 678, 840, -1, 174, 406, 678, 840, - -1, 174, 404, 678, 840, -1, 431, 678, 840, -1, - 400, 840, -1, 840, -1, 400, -1, -1, 27, -1, - 130, -1, -1, 130, -1, 130, 283, 492, 805, 493, - -1, 27, -1, -1, 188, 275, -1, 342, 275, -1, - -1, 684, -1, -1, 289, 54, 685, -1, 686, -1, - 685, 496, 686, -1, 775, 435, 802, 688, -1, 775, - 687, 688, -1, 37, -1, 124, -1, -1, 477, 160, - -1, 477, 224, -1, -1, 691, 692, -1, 692, 691, - -1, 691, -1, 692, -1, 689, -1, -1, 231, 700, - -1, 231, 700, 496, 701, -1, 158, 705, 702, 704, - 284, -1, 158, 705, 704, 284, -1, 280, 701, -1, - 280, 702, 704, -1, 4, 487, -1, 9, 487, -1, - 4, 305, -1, 9, 305, -1, 9, -1, 9, 353, - -1, 435, 355, 696, -1, -1, 848, -1, -1, 695, - 492, 693, 493, 699, -1, 693, -1, 693, 492, 848, - 493, -1, 693, 492, 848, 496, 9, 493, -1, 402, - 696, -1, 697, -1, -1, 338, 492, 9, 493, -1, - -1, 775, -1, 27, -1, 775, 487, -1, 4, 305, - -1, 9, 305, -1, 775, -1, 777, -1, 483, 703, - -1, 484, 703, -1, 846, -1, 4, -1, 352, -1, - 353, -1, 160, -1, 265, -1, 177, 54, 707, -1, - -1, 708, -1, 707, 496, 708, -1, 775, -1, 709, - -1, 711, -1, 710, -1, 712, -1, 492, 493, -1, - 351, 492, 805, 493, -1, 96, 492, 805, 493, -1, - 178, 373, 492, 707, 493, -1, 178, -1, 179, -1, - 181, 775, -1, -1, 717, -1, 163, 325, 284, -1, - 715, -1, -1, 718, -1, 717, 718, -1, 719, 720, - 721, -1, 163, 433, -1, 163, 266, 220, 433, -1, - 163, 374, -1, 163, 220, 374, -1, 278, 839, -1, - -1, 272, -1, 378, 239, -1, -1, 441, 492, 805, - 493, -1, 722, 496, 492, 805, 493, -1, 168, 724, - -1, -1, 725, -1, 724, 496, 725, -1, 733, 728, - 698, -1, 734, 729, 698, -1, 225, 734, 729, -1, - 669, 728, 698, -1, 225, 669, 728, -1, 726, -1, - 492, 726, 493, 727, -1, 492, 726, 493, -1, 725, - 94, 219, 725, -1, 725, 730, 219, 725, 732, -1, - 725, 219, 725, 732, -1, 725, 262, 730, 219, 725, - -1, 725, 262, 219, 725, -1, 36, 848, 492, 841, - 493, -1, 36, 849, -1, 848, 492, 841, 493, -1, - 848, -1, 727, -1, -1, 727, -1, 36, 492, 740, - 493, -1, 36, 848, 492, 740, 493, -1, 848, 492, - 740, 493, -1, -1, 169, 731, -1, 228, 731, -1, - 348, 731, -1, 203, -1, 292, -1, -1, 435, 492, - 841, 493, -1, 283, 775, -1, 840, -1, 840, 485, - -1, 284, 840, -1, 284, 492, 840, 493, -1, 780, - 738, -1, 353, 168, 492, 736, 493, 738, -1, 780, - 737, -1, 735, -1, 736, 496, 735, -1, 36, 492, - 740, 493, -1, -1, 478, 290, -1, -1, 451, 775, - -1, -1, 741, -1, 740, 496, 741, -1, 848, 745, - 742, -1, 73, 853, -1, -1, 848, 745, -1, 743, - 496, 848, 745, -1, 352, -1, 393, -1, 747, 746, - -1, 372, 747, 746, -1, 747, 35, 490, 846, 491, - -1, 372, 747, 35, 490, 846, 491, -1, 747, 35, - -1, 372, 747, 35, -1, 744, 492, 743, 493, 746, - -1, 242, 492, 809, 493, 746, -1, 746, 490, 491, - -1, 746, 490, 846, 491, -1, -1, 749, -1, 751, - -1, 753, -1, 757, -1, 763, -1, 764, 774, -1, - 764, 492, 846, 493, -1, 751, -1, 754, -1, 758, - -1, 763, -1, 852, 750, -1, 492, 805, 493, -1, - -1, 210, -1, 211, -1, 379, -1, 49, -1, 326, - -1, 161, 752, -1, 134, 312, -1, 113, 750, -1, - 112, 750, -1, 276, 750, -1, 52, -1, 492, 846, - 493, -1, -1, 755, -1, 756, -1, 755, -1, 756, - -1, 51, 762, 492, 805, 493, -1, 51, 762, -1, - 759, -1, 760, -1, 759, -1, 760, -1, 761, 492, - 846, 493, -1, 761, -1, 65, 762, -1, 64, 762, - -1, 442, -1, 261, 65, 762, -1, 261, 64, 762, - -1, 263, 762, -1, 444, -1, -1, 410, 492, 846, - 493, 765, -1, 410, 765, -1, 409, 492, 846, 493, - 765, -1, 409, 765, -1, 213, -1, 478, 409, 475, - -1, 456, 409, 475, -1, -1, 472, -1, 473, -1, - 256, -1, 257, -1, 109, -1, 110, -1, 184, -1, - 185, -1, 252, -1, 253, -1, 361, -1, 362, -1, - 250, -1, 251, -1, 248, -1, 249, -1, 766, -1, - 767, -1, 768, -1, 769, -1, 770, -1, 771, -1, - 772, -1, 773, -1, 766, 411, 767, -1, 768, 411, - 769, -1, 768, 411, 770, -1, 768, 411, 771, -1, - 769, 411, 770, -1, 769, 411, 771, -1, 770, 411, - 771, -1, -1, 777, -1, 775, 11, 745, -1, 775, - 73, 853, -1, 775, 41, 409, 475, 775, -1, 483, - 775, -1, 484, 775, -1, 775, 483, 775, -1, 775, - 484, 775, -1, 775, 485, 775, -1, 775, 486, 775, - -1, 775, 487, 775, -1, 775, 488, 775, -1, 775, - 479, 775, -1, 775, 480, 775, -1, 775, 481, 775, - -1, 775, 16, 775, -1, 775, 17, 775, -1, 775, - 18, 775, -1, 775, 801, 775, -1, 801, 775, -1, - 775, 801, -1, 775, 33, 775, -1, 775, 288, 775, - -1, 268, 775, -1, 476, 775, -1, 775, 173, 775, - -1, 775, 230, 775, -1, 775, 230, 775, 143, 775, - -1, 775, 476, 230, 775, -1, 775, 476, 230, 775, - 143, 775, -1, 775, 189, 775, -1, 775, 189, 775, - 143, 775, -1, 775, 476, 189, 775, -1, 775, 476, - 189, 775, 143, 775, -1, 775, 376, 411, 775, -1, - 775, 376, 411, 775, 143, 775, -1, 775, 476, 376, - 411, 775, -1, 775, 476, 376, 411, 775, 143, 775, - -1, 775, 216, 273, -1, 775, 217, -1, 775, 216, - 268, 273, -1, 775, 268, 273, -1, 775, 271, -1, - 795, -1, 497, 797, 498, -1, 490, 806, 491, -1, - 795, 15, 775, -1, 825, 15, 775, -1, 795, 294, - 795, -1, 775, 216, 418, -1, 775, 216, 268, 418, - -1, 775, 216, 156, -1, 775, 216, 268, 156, -1, - 775, 216, 429, -1, 775, 216, 268, 429, -1, 775, - 216, 130, 168, 775, -1, 775, 216, 268, 130, 168, - 775, -1, 775, 216, 278, 492, 809, 493, -1, 775, - 216, 268, 278, 492, 809, 493, -1, 775, 48, 830, - 776, 33, 775, -1, 775, 476, 48, 830, 776, 33, - 775, -1, 775, 48, 397, 776, 33, 775, -1, 775, - 476, 48, 397, 776, 33, 775, -1, 775, 194, 819, - -1, 775, 476, 194, 819, -1, 775, 803, 798, 669, - -1, 775, 803, 798, 492, 775, 493, -1, 115, -1, - 35, 490, 806, 491, -1, 777, -1, 776, 11, 745, - -1, 483, 776, -1, 484, 776, -1, 776, 483, 776, - -1, 776, 484, 776, -1, 776, 485, 776, -1, 776, - 486, 776, -1, 776, 487, 776, -1, 776, 488, 776, - -1, 776, 479, 776, -1, 776, 480, 776, -1, 776, - 481, 776, -1, 776, 16, 776, -1, 776, 17, 776, - -1, 776, 18, 776, -1, 776, 801, 776, -1, 801, - 776, -1, 776, 801, -1, 776, 216, 130, 168, 776, - -1, 776, 216, 268, 130, 168, 776, -1, 776, 216, - 278, 492, 809, 493, -1, 776, 216, 268, 278, 492, - 809, 493, -1, 825, -1, 845, -1, 499, 9, -1, - 500, 829, -1, 10, 829, -1, 492, 775, 493, 829, - -1, 820, -1, 779, 829, -1, 669, -1, 669, 828, - -1, 150, 669, -1, 713, 492, 805, 493, -1, 844, - 492, 493, -1, 844, 492, 807, 683, 682, 493, -1, - 844, 492, 443, 808, 683, 682, 493, -1, 844, 492, - 807, 496, 443, 808, 683, 682, 493, -1, 844, 492, - 27, 807, 683, 682, 493, -1, 844, 492, 130, 807, - 683, 682, 493, -1, 844, 492, 485, 493, -1, 778, - 782, 783, 787, -1, 781, -1, 778, -1, 781, -1, - 74, 163, 492, 775, 493, -1, 99, -1, 102, -1, - 102, 492, 846, 493, -1, 103, -1, 103, 492, 846, - 493, -1, 235, -1, 235, 492, 846, 493, -1, 236, - -1, 236, 492, 846, 493, -1, 100, -1, 104, -1, - 370, -1, 434, -1, 98, -1, 101, -1, 61, 492, - 775, 36, 745, 493, -1, 421, 492, 775, 36, 745, - 493, -1, 155, 492, 810, 493, -1, 295, 492, 812, - 493, -1, 309, 492, 814, 493, -1, 395, 492, 815, - 493, -1, 415, 492, 775, 36, 745, 493, -1, 417, - 492, 53, 818, 493, -1, 417, 492, 226, 818, 493, - -1, 417, 492, 412, 818, 493, -1, 417, 492, 818, - 493, -1, 274, 492, 775, 496, 775, 493, -1, 72, - 492, 805, 493, -1, 455, 177, 492, 684, 493, -1, - -1, 159, 492, 451, 775, 493, -1, -1, 453, 785, - -1, -1, 786, -1, 785, 496, 786, -1, 848, 36, - 788, -1, 293, 788, -1, 293, 848, -1, -1, 492, - 789, 790, 683, 791, 493, -1, 848, -1, -1, 302, - 54, 805, -1, -1, 324, 792, -1, 353, 792, -1, - -1, 793, -1, 48, 793, 33, 793, -1, 424, 311, - -1, 424, 162, -1, 97, 352, -1, 775, 311, -1, - 775, 162, -1, 352, 492, 805, 493, -1, 352, 492, - 493, -1, 794, -1, 492, 805, 496, 775, 493, -1, - 849, 501, 775, -1, 796, -1, 797, 496, 796, -1, - 34, -1, 381, -1, 27, -1, 8, -1, 800, -1, - 483, -1, 484, -1, 485, -1, 486, -1, 487, -1, - 488, -1, 479, -1, 480, -1, 481, -1, 16, -1, - 17, -1, 18, -1, 8, -1, 285, 492, 804, 493, - -1, 799, -1, 285, 492, 804, 493, -1, 799, -1, - 285, 492, 804, 493, -1, 230, -1, 476, 230, -1, - 173, -1, 476, 173, -1, 189, -1, 476, 189, -1, - 799, -1, 848, 494, 804, -1, 775, -1, 805, 496, - 775, -1, 805, -1, -1, 808, -1, 807, 496, 808, - -1, 775, -1, 856, 13, 775, -1, 856, 14, 775, - -1, 745, -1, 809, 496, 745, -1, 811, 168, 775, - -1, -1, 3, -1, 766, -1, 767, -1, 768, -1, - 769, -1, 770, -1, 771, -1, 772, -1, 773, -1, - 847, -1, 775, 813, 816, 817, -1, 775, 813, 816, - -1, 306, 775, -1, 776, 194, 776, -1, -1, 775, - 816, 817, -1, 775, 817, 816, -1, 775, 816, -1, - 775, 817, -1, 805, -1, -1, 168, 775, -1, 163, - 775, -1, 775, 168, 805, -1, 168, 805, -1, 805, - -1, 669, -1, 492, 805, 493, -1, 60, 824, 821, - 823, 141, -1, 822, -1, 821, 822, -1, 450, 775, - 408, 775, -1, 137, 775, -1, -1, 775, -1, -1, - 848, -1, 848, 828, -1, 494, 843, -1, 490, 775, - 491, -1, 490, 827, 501, 827, 491, -1, 775, -1, - -1, 826, -1, 828, 826, -1, -1, 829, 826, -1, - 40, -1, -1, 832, -1, -1, 833, -1, 832, 496, - 833, -1, 775, 36, 858, -1, 775, 3, -1, 775, - -1, 485, 835, 838, -1, 848, 494, 485, 835, 838, - -1, 146, 492, 841, 493, -1, 146, 848, -1, 834, - -1, -1, 775, 36, 848, -1, 836, -1, 837, 496, - 836, -1, 339, 492, 837, 493, -1, 339, 836, -1, - -1, 840, -1, 839, 496, 840, -1, 849, -1, 848, - 828, -1, 842, -1, 841, 496, 842, -1, 848, -1, - 857, -1, 851, -1, 848, 828, -1, 846, -1, 4, - -1, 847, 829, -1, 6, -1, 7, -1, 844, 847, - -1, 844, 492, 807, 683, 682, 493, 847, -1, 748, - 847, -1, 764, 492, 775, 493, 774, -1, 764, 846, - 774, -1, 764, 847, 774, -1, 418, -1, 156, -1, - 273, -1, 9, -1, 5, -1, 3, -1, 878, -1, - 879, -1, 848, -1, 5, -1, 3, -1, 878, -1, - 883, -1, 3, -1, 878, -1, 880, -1, 3, -1, - 878, -1, 881, -1, 848, -1, 848, 854, -1, 494, - 843, -1, 854, 494, 843, -1, 492, 841, 493, -1, - -1, 850, -1, 3, -1, 882, -1, 878, -1, 884, - -1, 857, -1, 5, -1, 539, 120, 168, 860, 862, - 861, 544, -1, 733, -1, 733, 848, -1, 733, 36, - 848, -1, 451, 775, -1, -1, 435, 724, -1, -1, - 93, 357, 848, 864, -1, 93, 357, 187, 268, 150, - 848, 864, -1, 864, 865, -1, -1, 562, -1, 616, - -1, 608, -1, 629, -1, 135, 867, 187, 150, 869, - 870, -1, 135, 867, 869, 870, -1, 135, 868, 187, - 150, 841, 870, -1, 135, 868, 841, 870, -1, 135, - 871, 842, 283, 853, 870, -1, 135, 871, 187, 150, - 842, 283, 853, 870, -1, 135, 422, 872, 870, -1, - 135, 422, 187, 150, 872, 870, -1, 400, -1, 365, - -1, 170, -1, 241, -1, 447, -1, 245, 447, -1, - 197, -1, 165, 400, -1, 74, -1, 90, -1, 387, - -1, 407, 360, 300, -1, 407, 360, 127, -1, 407, - 360, 405, -1, 407, 360, 83, -1, 21, 247, -1, - 144, 416, -1, 153, -1, 165, 107, 458, -1, 322, - -1, 357, -1, 368, -1, 853, -1, 869, 496, 853, - -1, 58, -1, 344, -1, -1, 308, -1, 354, -1, - 416, -1, 745, -1, 872, 496, 745, -1, 93, 422, - 853, 36, 142, 492, 874, 493, -1, 875, -1, -1, - 847, -1, 875, 496, 847, -1, 149, 842, 877, -1, - 93, 606, 400, 625, 36, 149, 842, 877, 624, -1, - 93, 606, 400, 187, 268, 150, 625, 36, 149, 842, - 877, 624, -1, 492, 805, 493, -1, -1, 19, -1, - 20, -1, 21, -1, 22, -1, 23, -1, 24, -1, - 25, -1, 26, -1, 28, -1, 29, -1, 30, -1, - 38, -1, 39, -1, 41, -1, 42, -1, 43, -1, - 45, -1, 46, -1, 47, -1, 54, -1, 55, -1, - 56, -1, 57, -1, 58, -1, 59, -1, 62, -1, - 63, -1, 66, -1, 68, -1, 69, -1, 70, -1, - 71, -1, 76, -1, 77, -1, 78, -1, 79, -1, - 80, -1, 81, -1, 83, -1, 84, -1, 85, -1, - 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, - 92, -1, 95, -1, 96, -1, 97, -1, 105, -1, - 106, -1, 107, -1, 108, -1, 109, -1, 110, -1, - 111, -1, 114, -1, 116, -1, 118, -1, 119, -1, - 120, -1, 121, -1, 122, -1, 123, -1, 125, -1, - 126, -1, 127, -1, 128, -1, 129, -1, 132, -1, - 133, -1, 134, -1, 135, -1, 136, -1, 138, -1, - 139, -1, 140, -1, 142, -1, 143, -1, 144, -1, - 146, -1, 147, -1, 148, -1, 149, -1, 151, -1, - 152, -1, 153, -1, 154, -1, 157, -1, 159, -1, - 160, -1, 162, -1, 164, -1, 166, -1, 170, -1, - 171, -1, 172, -1, 174, -1, 176, -1, 180, -1, - 182, -1, 183, -1, 184, -1, 185, -1, 186, -1, - 187, -1, 188, -1, 190, -1, 191, -1, 192, -1, - 193, -1, 195, -1, 196, -1, 197, -1, 198, -1, - 199, -1, 200, -1, 202, -1, 205, -1, 206, -1, - 207, -1, 208, -1, 209, -1, 215, -1, 218, -1, - 220, -1, 221, -1, 222, -1, 223, -1, 224, -1, - 227, -1, 229, -1, 232, -1, 233, -1, 234, -1, - 237, -1, 238, -1, 239, -1, 240, -1, 241, -1, - 243, -1, 244, -1, 245, -1, 246, -1, 247, -1, - 248, -1, 249, -1, 250, -1, 251, -1, 252, -1, - 253, -1, 254, -1, 255, -1, 256, -1, 257, -1, - 258, -1, 259, -1, 260, -1, 264, -1, 265, -1, - 266, -1, 269, -1, 270, -1, 272, -1, 275, -1, - 277, -1, 278, -1, 279, -1, 281, -1, 282, -1, - 285, -1, 286, -1, 287, -1, 290, -1, 293, -1, - 296, -1, 297, -1, 298, -1, 299, -1, 300, -1, - 301, -1, 302, -1, 303, -1, 304, -1, 305, -1, - 307, -1, 308, -1, 310, -1, 311, -1, 313, -1, - 314, -1, 315, -1, 317, -1, 318, -1, 319, -1, - 320, -1, 321, -1, 322, -1, 323, -1, 324, -1, - 325, -1, 327, -1, 328, -1, 329, -1, 330, -1, - 332, -1, 333, -1, 334, -1, 335, -1, 336, -1, - 337, -1, 338, -1, 339, -1, 340, -1, 341, -1, - 342, -1, 343, -1, 344, -1, 346, -1, 347, -1, - 349, -1, 350, -1, 351, -1, 353, -1, 354, -1, - 355, -1, 356, -1, 357, -1, 358, -1, 359, -1, - 360, -1, 361, -1, 362, -1, 363, -1, 365, -1, - 366, -1, 367, -1, 368, -1, 369, -1, 371, -1, - 373, -1, 374, -1, 375, -1, 377, -1, 378, -1, - 380, -1, 382, -1, 383, -1, 384, -1, 385, -1, - 386, -1, 387, -1, 388, -1, 389, -1, 390, -1, - 391, -1, 392, -1, 394, -1, 396, -1, 398, -1, - 399, -1, 401, -1, 403, -1, 404, -1, 405, -1, - 406, -1, 407, -1, 413, -1, 414, -1, 416, -1, - 419, -1, 420, -1, 422, -1, 423, -1, 424, -1, - 425, -1, 426, -1, 429, -1, 430, -1, 431, -1, - 432, -1, 433, -1, 436, -1, 437, -1, 438, -1, - 439, -1, 440, -1, 444, -1, 446, -1, 447, -1, - 448, -1, 449, -1, 452, -1, 455, -1, 456, -1, - 457, -1, 458, -1, 459, -1, 460, -1, 472, -1, - 473, -1, 474, -1, 475, -1, 48, -1, 49, -1, - 51, -1, 52, -1, 64, -1, 65, -1, 72, -1, - 112, -1, 113, -1, 150, -1, 155, -1, 161, -1, - 178, -1, 179, -1, 204, -1, 210, -1, 211, -1, - 213, -1, 242, -1, 261, -1, 263, -1, 267, -1, - 274, -1, 276, -1, 291, -1, 295, -1, 309, -1, - 312, -1, 326, -1, 352, -1, 372, -1, 379, -1, - 393, -1, 395, -1, 409, -1, 410, -1, 415, -1, - 417, -1, 421, -1, 441, -1, 442, -1, 461, -1, - 462, -1, 463, -1, 464, -1, 465, -1, 466, -1, - 467, -1, 468, -1, 469, -1, 470, -1, 471, -1, - 44, -1, 50, -1, 74, -1, 82, -1, 94, -1, - 101, -1, 167, -1, 169, -1, 173, -1, 189, -1, - 203, -1, 216, -1, 217, -1, 219, -1, 228, -1, - 230, -1, 242, -1, 262, -1, 271, -1, 292, -1, - 294, -1, 348, -1, 376, -1, 393, -1, 402, -1, - 445, -1, 44, -1, 50, -1, 74, -1, 82, -1, - 94, -1, 101, -1, 167, -1, 169, -1, 173, -1, - 189, -1, 203, -1, 216, -1, 217, -1, 219, -1, - 228, -1, 230, -1, 262, -1, 271, -1, 292, -1, - 294, -1, 348, -1, 376, -1, 402, -1, 421, -1, - 445, -1, 48, -1, 49, -1, 51, -1, 52, -1, - 65, -1, 64, -1, 72, -1, 112, -1, 113, -1, + 504, 0, -1, 505, -1, 505, 496, 506, -1, 506, + -1, 717, -1, 800, -1, 730, -1, 807, -1, 776, + -1, 777, -1, 753, -1, 784, -1, 750, -1, 741, + -1, 789, -1, 792, -1, 833, -1, 879, -1, 778, + -1, 507, -1, 828, -1, 514, -1, 718, -1, 719, + -1, 720, -1, 810, -1, 808, -1, 749, -1, 797, + -1, 782, -1, 525, -1, 727, -1, 729, -1, 744, + -1, 830, -1, 770, -1, 794, -1, 787, -1, -1, + 135, 508, 187, 150, 510, 511, -1, 135, 508, 510, + 511, -1, 135, 509, 187, 150, 699, 511, -1, 135, + 509, 699, 511, -1, 135, 512, 700, 283, 711, 511, + -1, 135, 512, 187, 150, 700, 283, 711, 511, -1, + 135, 423, 513, 511, -1, 135, 423, 187, 150, 513, + 511, -1, 401, -1, 366, -1, 170, -1, 241, -1, + 448, -1, 245, 448, -1, 197, -1, 165, 401, -1, + 74, -1, 90, -1, 388, -1, 408, 361, 300, -1, + 408, 361, 127, -1, 408, 361, 406, -1, 408, 361, + 83, -1, 21, 247, -1, 144, 417, -1, 153, -1, + 165, 107, 459, -1, 322, -1, 358, -1, 369, -1, + 711, -1, 510, 497, 711, -1, 58, -1, 345, -1, + -1, 308, -1, 355, -1, 417, -1, 603, -1, 513, + 497, 603, -1, 151, 517, -1, 151, 521, 515, 517, + -1, 151, 446, 517, -1, 151, 493, 520, 494, 517, + -1, 446, -1, -1, 522, -1, 803, -1, -1, 525, + -1, 810, -1, 729, -1, 778, -1, 784, -1, 3, + -1, 880, -1, 884, -1, 518, -1, 705, -1, 523, + -1, 520, 497, 523, -1, 32, -1, 31, -1, 419, + -1, 156, -1, 283, -1, 519, -1, 524, 516, -1, + 518, -1, 521, -1, 527, -1, 526, -1, 493, 527, + 494, -1, 493, 526, 494, -1, 529, -1, 528, 541, + -1, 528, 540, 573, 547, -1, 528, 540, 546, 574, + -1, 530, 528, -1, 530, 528, 541, -1, 530, 528, + 540, 573, 547, -1, 530, 528, 540, 546, 574, -1, + 529, -1, 526, -1, 365, 538, 689, 533, 581, 597, + 563, 571, 642, 572, 551, -1, 365, 537, 690, 533, + 581, 597, 563, 571, 642, 572, 551, -1, 580, -1, + 401, 591, -1, 528, 428, 536, 528, -1, 528, 212, + 536, 528, -1, 528, 145, 536, 528, -1, 455, 531, + -1, 479, 531, -1, 455, 330, 531, -1, 532, -1, + 531, 497, 532, -1, 700, 713, 36, 493, 799, 494, + -1, 214, 534, -1, -1, 407, 535, 698, -1, 405, + 535, 698, -1, 234, 407, 535, 698, -1, 234, 405, + 535, 698, -1, 174, 407, 535, 698, -1, 174, 405, + 535, 698, -1, 432, 535, 698, -1, 401, 698, -1, + 698, -1, 401, -1, -1, 27, -1, 130, -1, -1, + 130, -1, 130, 283, 493, 663, 494, -1, 27, -1, + -1, 188, 275, -1, 343, 275, -1, -1, 541, -1, + -1, 289, 54, 542, -1, 543, -1, 542, 497, 543, + -1, 633, 436, 660, 545, -1, 633, 544, 545, -1, + 37, -1, 124, -1, -1, 478, 160, -1, 478, 224, + -1, -1, 548, 549, -1, 549, 548, -1, 548, -1, + 549, -1, 546, -1, -1, 231, 557, -1, 231, 557, + 497, 558, -1, 158, 562, 559, 561, 284, -1, 158, + 562, 561, 284, -1, 280, 558, -1, 280, 559, 561, + -1, 4, 488, -1, 9, 488, -1, 4, 305, -1, + 9, 305, -1, 9, -1, 9, 354, -1, 436, 356, + 553, -1, -1, 706, -1, -1, 552, 493, 550, 494, + 556, -1, 550, -1, 550, 493, 706, 494, -1, 550, + 493, 706, 497, 9, 494, -1, 403, 553, -1, 554, + -1, -1, 339, 493, 9, 494, -1, -1, 633, -1, + 27, -1, 633, 488, -1, 4, 305, -1, 9, 305, + -1, 633, -1, 635, -1, 484, 560, -1, 485, 560, + -1, 704, -1, 4, -1, 353, -1, 354, -1, 160, + -1, 265, -1, 177, 54, 564, -1, -1, 565, -1, + 564, 497, 565, -1, 633, -1, 566, -1, 568, -1, + 567, -1, 569, -1, 493, 494, -1, 352, 493, 663, + 494, -1, 96, 493, 663, 494, -1, 178, 374, 493, + 564, 494, -1, 178, -1, 179, -1, 181, 633, -1, + -1, 323, 633, -1, -1, 575, -1, 163, 326, 284, + -1, 573, -1, -1, 576, -1, 575, 576, -1, 577, + 578, 579, -1, 163, 434, -1, 163, 266, 220, 434, + -1, 163, 375, -1, 163, 220, 375, -1, 278, 697, + -1, -1, 272, -1, 379, 239, -1, -1, 442, 493, + 663, 494, -1, 580, 497, 493, 663, 494, -1, 168, + 582, -1, -1, 583, -1, 582, 497, 583, -1, 591, + 586, 555, -1, 592, 587, 555, -1, 225, 592, 587, + -1, 526, 586, 555, -1, 225, 526, 586, -1, 584, + -1, 493, 584, 494, 585, -1, 493, 584, 494, -1, + 583, 94, 219, 583, -1, 583, 588, 219, 583, 590, + -1, 583, 219, 583, 590, -1, 583, 262, 588, 219, + 583, -1, 583, 262, 219, 583, -1, 36, 706, 493, + 699, 494, -1, 36, 707, -1, 706, 493, 699, 494, + -1, 706, -1, 585, -1, -1, 585, -1, 36, 493, + 598, 494, -1, 36, 706, 493, 598, 494, -1, 706, + 493, 598, 494, -1, -1, 169, 589, -1, 228, 589, + -1, 349, 589, -1, 203, -1, 292, -1, -1, 436, + 493, 699, 494, -1, 283, 633, -1, 698, -1, 698, + 486, -1, 284, 698, -1, 284, 493, 698, 494, -1, + 638, 596, -1, 354, 168, 493, 594, 494, 596, -1, + 638, 595, -1, 593, -1, 594, 497, 593, -1, 36, + 493, 598, 494, -1, -1, 479, 290, -1, -1, 452, + 633, -1, -1, 599, -1, 598, 497, 599, -1, 706, + 603, 600, -1, 73, 711, -1, -1, 706, 603, -1, + 601, 497, 706, 603, -1, 353, -1, 394, -1, 605, + 604, -1, 373, 605, 604, -1, 605, 35, 491, 704, + 492, -1, 373, 605, 35, 491, 704, 492, -1, 605, + 35, -1, 373, 605, 35, -1, 602, 493, 601, 494, + 604, -1, 242, 493, 667, 494, 604, -1, 604, 491, + 492, -1, 604, 491, 704, 492, -1, -1, 607, -1, + 609, -1, 611, -1, 615, -1, 621, -1, 622, 632, + -1, 622, 493, 704, 494, -1, 609, -1, 612, -1, + 616, -1, 621, -1, 710, 608, -1, 493, 663, 494, + -1, -1, 210, -1, 211, -1, 380, -1, 49, -1, + 327, -1, 161, 610, -1, 134, 312, -1, 113, 608, + -1, 112, 608, -1, 276, 608, -1, 52, -1, 493, + 704, 494, -1, -1, 613, -1, 614, -1, 613, -1, + 614, -1, 51, 620, 493, 663, 494, -1, 51, 620, + -1, 617, -1, 618, -1, 617, -1, 618, -1, 619, + 493, 704, 494, -1, 619, -1, 65, 620, -1, 64, + 620, -1, 443, -1, 261, 65, 620, -1, 261, 64, + 620, -1, 263, 620, -1, 445, -1, -1, 411, 493, + 704, 494, 623, -1, 411, 623, -1, 410, 493, 704, + 494, 623, -1, 410, 623, -1, 213, -1, 479, 410, + 476, -1, 457, 410, 476, -1, -1, 473, -1, 474, + -1, 256, -1, 257, -1, 109, -1, 110, -1, 184, + -1, 185, -1, 252, -1, 253, -1, 362, -1, 363, + -1, 250, -1, 251, -1, 248, -1, 249, -1, 624, + -1, 625, -1, 626, -1, 627, -1, 628, -1, 629, + -1, 630, -1, 631, -1, 624, 412, 625, -1, 626, + 412, 627, -1, 626, 412, 628, -1, 626, 412, 629, + -1, 627, 412, 628, -1, 627, 412, 629, -1, 628, + 412, 629, -1, -1, 635, -1, 633, 11, 603, -1, + 633, 73, 711, -1, 633, 41, 410, 476, 633, -1, + 484, 633, -1, 485, 633, -1, 633, 484, 633, -1, + 633, 485, 633, -1, 633, 486, 633, -1, 633, 487, + 633, -1, 633, 488, 633, -1, 633, 489, 633, -1, + 633, 480, 633, -1, 633, 481, 633, -1, 633, 482, + 633, -1, 633, 16, 633, -1, 633, 17, 633, -1, + 633, 18, 633, -1, 633, 659, 633, -1, 659, 633, + -1, 633, 659, -1, 633, 33, 633, -1, 633, 288, + 633, -1, 268, 633, -1, 477, 633, -1, 633, 173, + 633, -1, 633, 230, 633, -1, 633, 230, 633, 143, + 633, -1, 633, 477, 230, 633, -1, 633, 477, 230, + 633, 143, 633, -1, 633, 189, 633, -1, 633, 189, + 633, 143, 633, -1, 633, 477, 189, 633, -1, 633, + 477, 189, 633, 143, 633, -1, 633, 377, 412, 633, + -1, 633, 377, 412, 633, 143, 633, -1, 633, 477, + 377, 412, 633, -1, 633, 477, 377, 412, 633, 143, + 633, -1, 633, 216, 273, -1, 633, 217, -1, 633, + 216, 268, 273, -1, 633, 268, 273, -1, 633, 271, + -1, 653, -1, 498, 655, 499, -1, 491, 664, 492, + -1, 653, 15, 633, -1, 683, 15, 633, -1, 653, + 294, 653, -1, 633, 216, 419, -1, 633, 216, 268, + 419, -1, 633, 216, 156, -1, 633, 216, 268, 156, + -1, 633, 216, 430, -1, 633, 216, 268, 430, -1, + 633, 216, 130, 168, 633, -1, 633, 216, 268, 130, + 168, 633, -1, 633, 216, 278, 493, 667, 494, -1, + 633, 216, 268, 278, 493, 667, 494, -1, 633, 48, + 688, 634, 33, 633, -1, 633, 477, 48, 688, 634, + 33, 633, -1, 633, 48, 398, 634, 33, 633, -1, + 633, 477, 48, 398, 634, 33, 633, -1, 633, 194, + 677, -1, 633, 477, 194, 677, -1, 633, 661, 656, + 526, -1, 633, 661, 656, 493, 633, 494, -1, 115, + -1, 35, 491, 664, 492, -1, 635, -1, 634, 11, + 603, -1, 484, 634, -1, 485, 634, -1, 634, 484, + 634, -1, 634, 485, 634, -1, 634, 486, 634, -1, + 634, 487, 634, -1, 634, 488, 634, -1, 634, 489, + 634, -1, 634, 480, 634, -1, 634, 481, 634, -1, + 634, 482, 634, -1, 634, 16, 634, -1, 634, 17, + 634, -1, 634, 18, 634, -1, 634, 659, 634, -1, + 659, 634, -1, 634, 659, -1, 634, 216, 130, 168, + 634, -1, 634, 216, 268, 130, 168, 634, -1, 634, + 216, 278, 493, 667, 494, -1, 634, 216, 268, 278, + 493, 667, 494, -1, 683, -1, 703, -1, 500, 9, + -1, 501, 687, -1, 10, 687, -1, 493, 633, 494, + 687, -1, 678, -1, 637, 687, -1, 526, -1, 526, + 686, -1, 150, 526, -1, 570, 493, 663, 494, -1, + 702, 493, 494, -1, 702, 493, 665, 540, 539, 494, + -1, 702, 493, 444, 666, 540, 539, 494, -1, 702, + 493, 665, 497, 444, 666, 540, 539, 494, -1, 702, + 493, 27, 665, 540, 539, 494, -1, 702, 493, 130, + 665, 540, 539, 494, -1, 702, 493, 486, 494, -1, + 636, 640, 641, 645, -1, 639, -1, 636, -1, 639, + -1, 74, 163, 493, 633, 494, -1, 99, -1, 102, + -1, 102, 493, 704, 494, -1, 103, -1, 103, 493, + 704, 494, -1, 235, -1, 235, 493, 704, 494, -1, + 236, -1, 236, 493, 704, 494, -1, 100, -1, 104, + -1, 371, -1, 435, -1, 98, -1, 101, -1, 61, + 493, 633, 36, 603, 494, -1, 422, 493, 633, 36, + 603, 494, -1, 155, 493, 668, 494, -1, 295, 493, + 670, 494, -1, 309, 493, 672, 494, -1, 396, 493, + 673, 494, -1, 416, 493, 633, 36, 603, 494, -1, + 418, 493, 53, 676, 494, -1, 418, 493, 226, 676, + 494, -1, 418, 493, 413, 676, 494, -1, 418, 493, + 676, 494, -1, 274, 493, 633, 497, 633, 494, -1, + 72, 493, 663, 494, -1, 456, 177, 493, 541, 494, + -1, -1, 159, 493, 452, 633, 494, -1, -1, 454, + 643, -1, -1, 644, -1, 643, 497, 644, -1, 706, + 36, 646, -1, 293, 646, -1, 293, 706, -1, -1, + 493, 647, 648, 540, 649, 494, -1, 706, -1, -1, + 302, 54, 663, -1, -1, 325, 650, -1, 354, 650, + -1, -1, 651, -1, 48, 651, 33, 651, -1, 425, + 311, -1, 425, 162, -1, 97, 353, -1, 633, 311, + -1, 633, 162, -1, 353, 493, 663, 494, -1, 353, + 493, 494, -1, 652, -1, 493, 663, 497, 633, 494, + -1, 707, 502, 633, -1, 654, -1, 655, 497, 654, + -1, 34, -1, 382, -1, 27, -1, 8, -1, 658, + -1, 484, -1, 485, -1, 486, -1, 487, -1, 488, + -1, 489, -1, 480, -1, 481, -1, 482, -1, 16, + -1, 17, -1, 18, -1, 8, -1, 285, 493, 662, + 494, -1, 657, -1, 285, 493, 662, 494, -1, 657, + -1, 285, 493, 662, 494, -1, 230, -1, 477, 230, + -1, 173, -1, 477, 173, -1, 189, -1, 477, 189, + -1, 657, -1, 706, 495, 662, -1, 633, -1, 663, + 497, 633, -1, 663, -1, -1, 666, -1, 665, 497, + 666, -1, 633, -1, 714, 13, 633, -1, 714, 14, + 633, -1, 603, -1, 667, 497, 603, -1, 669, 168, + 633, -1, -1, 3, -1, 624, -1, 625, -1, 626, + -1, 627, -1, 628, -1, 629, -1, 630, -1, 631, + -1, 705, -1, 633, 671, 674, 675, -1, 633, 671, + 674, -1, 306, 633, -1, 634, 194, 634, -1, -1, + 633, 674, 675, -1, 633, 675, 674, -1, 633, 674, + -1, 633, 675, -1, 663, -1, -1, 168, 633, -1, + 163, 633, -1, 633, 168, 663, -1, 168, 663, -1, + 663, -1, 526, -1, 493, 663, 494, -1, 60, 682, + 679, 681, 141, -1, 680, -1, 679, 680, -1, 451, + 633, 409, 633, -1, 137, 633, -1, -1, 633, -1, + -1, 706, -1, 706, 686, -1, 495, 701, -1, 491, + 633, 492, -1, 491, 685, 502, 685, 492, -1, 633, + -1, -1, 684, -1, 686, 684, -1, -1, 687, 684, + -1, 40, -1, -1, 690, -1, -1, 691, -1, 690, + 497, 691, -1, 633, 36, 716, -1, 633, 3, -1, + 633, -1, 486, 693, 696, -1, 706, 495, 486, 693, + 696, -1, 146, 493, 699, 494, -1, 146, 706, -1, + 692, -1, -1, 633, 36, 706, -1, 694, -1, 695, + 497, 694, -1, 340, 493, 695, 494, -1, 340, 694, + -1, -1, 698, -1, 697, 497, 698, -1, 707, -1, + 706, 686, -1, 700, -1, 699, 497, 700, -1, 706, + -1, 715, -1, 709, -1, 706, 686, -1, 704, -1, + 4, -1, 705, 687, -1, 6, -1, 7, -1, 702, + 705, -1, 702, 493, 665, 540, 539, 494, 705, -1, + 606, 705, -1, 622, 493, 633, 494, 632, -1, 622, + 704, 632, -1, 622, 705, 632, -1, 419, -1, 156, + -1, 273, -1, 9, -1, 5, -1, 3, -1, 880, + -1, 881, -1, 706, -1, 5, -1, 3, -1, 880, + -1, 885, -1, 3, -1, 880, -1, 882, -1, 3, + -1, 880, -1, 883, -1, 706, -1, 706, 712, -1, + 495, 701, -1, 712, 495, 701, -1, 493, 699, 494, + -1, -1, 708, -1, 3, -1, 884, -1, 880, -1, + 886, -1, 715, -1, 5, -1, 29, 401, 591, 372, + 358, 700, -1, 29, 401, 187, 150, 591, 372, 358, + 700, -1, 29, 366, 698, 372, 358, 700, -1, 29, + 366, 187, 150, 698, 372, 358, 700, -1, 29, 448, + 698, 372, 358, 700, -1, 29, 448, 187, 150, 698, + 372, 358, 700, -1, 152, 108, 705, 760, -1, 193, + 108, 705, -1, 93, 726, 197, 723, 724, 283, 698, + 722, 493, 826, 494, 725, 597, -1, 93, 726, 197, + 723, 187, 268, 150, 861, 283, 698, 722, 493, 826, + 494, 725, 597, -1, 706, -1, 436, 721, -1, -1, + 82, -1, -1, 861, -1, -1, 455, 846, -1, -1, + 429, -1, -1, 19, 728, -1, 47, 728, -1, 386, + 728, -1, 79, 728, -1, 141, 728, -1, 351, 728, + -1, 458, -1, 414, -1, -1, 814, 434, 779, 372, + 825, 581, 780, 819, -1, 29, 401, 591, 738, -1, + 29, 401, 187, 150, 591, 738, -1, 29, 197, 698, + 738, -1, 29, 197, 187, 150, 698, 738, -1, 29, + 366, 698, 738, -1, 29, 366, 187, 150, 698, 738, + -1, 29, 448, 698, 738, -1, 29, 448, 187, 150, + 698, 738, -1, 733, -1, 731, 733, -1, 372, 115, + 633, -1, 135, 115, -1, 344, -1, 344, 802, 803, + -1, 372, 804, -1, 372, 172, 878, -1, 737, -1, + 734, 497, 737, -1, 23, 858, -1, 23, 187, 268, + 150, 858, -1, 23, 75, 858, -1, 23, 75, 187, + 268, 150, 858, -1, 29, 783, 706, 732, -1, 29, + 783, 706, 135, 268, 273, -1, 29, 783, 706, 372, + 268, 273, -1, 29, 783, 706, 372, 388, 806, -1, + 29, 783, 706, 372, 846, -1, 29, 783, 706, 342, + 846, -1, 29, 783, 706, 372, 391, 706, -1, 29, + 783, 706, 23, 172, 878, 36, 186, 836, -1, 29, + 783, 706, 731, -1, 29, 783, 706, 135, 186, -1, + 29, 783, 706, 135, 186, 187, 150, -1, 135, 783, + 187, 150, 706, 511, -1, 135, 783, 706, 511, -1, + 29, 783, 706, 740, 423, 603, 600, 736, -1, 29, + 783, 706, 739, -1, 23, 848, -1, 29, 86, 700, + 834, -1, 439, 86, 700, -1, 135, 86, 187, 150, + 700, 511, -1, 135, 86, 700, 511, -1, 372, 240, + -1, 372, 432, -1, 372, 846, -1, 342, 846, -1, + 739, -1, 436, 633, -1, -1, 841, -1, 372, 841, + -1, 23, 841, -1, 135, 856, -1, 735, -1, 738, + 497, 735, -1, 287, 493, 734, 494, -1, 372, 107, + -1, 372, -1, -1, 93, 742, 698, 743, 36, 633, + -1, 170, -1, 241, -1, 493, 494, -1, 493, 665, + 494, -1, 437, 746, 748, 515, -1, 437, 746, 748, + 515, 698, -1, 437, 746, 748, 515, 807, -1, 437, + 493, 747, 494, -1, 437, 493, 747, 494, 698, 713, + -1, 521, -1, 446, -1, 167, -1, 169, -1, 3, + -1, 169, -1, -1, 745, -1, 747, 497, 745, -1, + 167, -1, -1, 310, 706, -1, 310, 706, 482, 775, + -1, 310, 706, 493, 665, 494, -1, 93, 423, 711, + 36, 142, 493, 751, 494, -1, 752, -1, -1, 705, + -1, 752, 497, 705, -1, 91, 765, 698, 867, 763, + 754, 759, 768, 755, 802, 760, -1, 91, 493, 799, + 494, 412, 759, 768, 802, 760, -1, 168, -1, 412, + -1, 757, 122, 705, -1, -1, 767, -1, 756, 497, + 767, -1, 436, -1, -1, 36, -1, -1, 321, -1, + -1, 764, -1, 493, 769, 494, -1, 522, -1, 803, + -1, 486, -1, 493, 756, 494, -1, -1, 715, 761, + -1, 455, 281, -1, -1, 764, 766, -1, -1, 50, + -1, -1, 50, -1, 281, -1, 167, -1, 121, 758, + 705, -1, 273, 758, 705, -1, 95, -1, 182, -1, + 324, 758, 705, -1, 143, 758, 705, -1, 164, 324, + 871, -1, 164, 324, 486, -1, 164, 268, 273, 871, + -1, 164, 273, 871, -1, 139, 705, -1, 522, -1, + 705, -1, 389, -1, 390, -1, 762, -1, 769, 497, + 762, -1, 372, 771, -1, 372, 234, 771, -1, 372, + 370, 771, -1, 372, 174, 771, -1, 772, -1, 796, + 168, 97, -1, 410, 476, 774, -1, 358, 705, -1, + 796, 412, 775, -1, 796, 482, 775, -1, 796, 412, + 115, -1, 796, 482, 115, -1, 522, -1, 803, -1, + 705, -1, 3, -1, 622, 705, 632, -1, 622, 493, + 704, 494, 705, -1, 803, -1, 115, -1, 234, -1, + 773, -1, 775, 497, 773, -1, 56, 636, -1, 164, + 68, -1, 68, -1, 814, 120, 168, 779, 781, 780, + 819, -1, 591, -1, 591, 706, -1, 591, 36, 706, + -1, 452, 633, -1, -1, 436, 582, -1, -1, 29, + 358, 700, 338, 412, 700, -1, 29, 401, 591, 338, + 412, 700, -1, 29, 401, 187, 150, 591, 338, 412, + 700, -1, 29, 366, 698, 338, 412, 700, -1, 29, + 366, 187, 150, 698, 338, 412, 700, -1, 29, 448, + 698, 338, 412, 700, -1, 29, 448, 187, 150, 698, + 338, 412, 700, -1, 29, 197, 698, 338, 412, 700, + -1, 29, 197, 187, 150, 698, 338, 412, 700, -1, + 29, 401, 591, 338, 783, 700, 412, 700, -1, 29, + 401, 187, 150, 591, 338, 783, 700, 412, 700, -1, + 29, 401, 591, 338, 86, 700, 412, 700, -1, 29, + 401, 187, 150, 591, 338, 86, 700, 412, 700, -1, + 75, -1, -1, 93, 877, 401, 786, 36, 525, 785, + -1, 93, 877, 401, 187, 268, 150, 786, 36, 525, + 785, -1, 455, 107, -1, 455, 266, 107, -1, -1, + 698, 867, 853, 845, -1, 93, 877, 448, 698, 867, + 725, 36, 525, 788, -1, 93, 288, 340, 877, 448, + 698, 867, 725, 36, 525, 788, -1, 93, 877, 330, + 448, 698, 493, 871, 494, 725, 36, 525, 788, -1, + 93, 288, 340, 877, 330, 448, 698, 493, 871, 494, + 725, 36, 525, 788, -1, 455, 67, 286, -1, 455, + 59, 67, 286, -1, 455, 234, 67, 286, -1, -1, + 93, 358, 706, 790, -1, 93, 358, 187, 268, 150, + 706, 790, -1, 790, 791, -1, -1, 833, -1, 720, + -1, 792, -1, 787, -1, 93, 877, 366, 698, 793, + -1, 93, 877, 366, 187, 268, 150, 698, 793, -1, + 801, -1, -1, 795, 525, -1, 397, 525, -1, 397, + 796, -1, 795, 796, -1, 795, 410, 476, -1, 795, + 414, 218, 229, -1, 795, 27, -1, 376, -1, 125, + -1, 706, -1, 796, 495, 706, -1, 313, 700, 798, + 36, 799, -1, 493, 667, 494, -1, -1, 525, -1, + 810, -1, 729, -1, 778, -1, 29, 366, 698, 801, + -1, 29, 366, 187, 150, 698, 801, -1, 804, -1, + 801, 804, -1, 455, -1, 479, -1, -1, 4, -1, + 484, 4, -1, 485, 4, -1, 806, -1, 36, 605, + -1, 55, 803, -1, 106, -1, 266, 106, -1, 196, + 805, 803, -1, 246, 803, -1, 254, 803, -1, 266, + 246, -1, 266, 254, -1, 297, 54, 711, -1, 366, + 259, 711, -1, 386, 802, 803, -1, 344, -1, 344, + 802, 803, -1, 54, -1, -1, 704, -1, 484, 704, + -1, 485, 704, -1, 521, 515, -1, 521, 515, 698, + 713, -1, 233, 809, -1, 208, 809, -1, 164, 208, + 809, -1, 705, -1, 706, -1, 814, 207, 214, 812, + 811, 817, 819, -1, 525, -1, 296, 820, 441, 525, + -1, 493, 824, 494, 525, -1, 493, 824, 494, 296, + 820, 441, 525, -1, 115, 442, -1, 698, -1, 698, + 36, 706, -1, 493, 826, 494, 597, -1, 283, 86, + 700, -1, -1, 530, -1, -1, 706, 687, -1, 827, + 482, 633, -1, 493, 821, 494, 482, 633, -1, 283, + 84, 813, 131, 434, 372, 825, 597, -1, 283, 84, + 813, 131, 269, -1, -1, 706, 822, 823, 544, 545, + -1, 638, 822, 823, 544, 545, -1, 493, 633, 494, + 822, 823, 544, 545, -1, 346, 690, -1, -1, 435, + -1, 400, -1, 827, -1, 821, 497, 827, -1, 73, + 711, -1, -1, 711, -1, -1, 815, -1, 824, 497, + 815, -1, 816, -1, 825, 497, 816, -1, 818, -1, + 826, 497, 818, -1, 706, 687, -1, 149, 700, 829, + -1, 93, 877, 401, 786, 36, 149, 700, 829, 785, + -1, 93, 877, 401, 187, 268, 150, 786, 36, 149, + 700, 829, 785, -1, 493, 663, 494, -1, -1, 342, + 832, -1, 796, -1, 27, -1, 831, -1, 410, 476, + -1, 414, 218, 229, -1, 93, 877, 401, 698, 493, + 865, 494, 853, 845, -1, 93, 877, 401, 187, 268, + 150, 698, 493, 865, 494, 853, 845, -1, 93, 288, + 340, 877, 401, 698, 493, 865, 494, 853, 845, -1, + -1, 834, 857, -1, 872, -1, 886, -1, 660, -1, + 803, -1, 705, -1, 267, -1, 493, 801, 494, -1, + -1, 705, -1, 266, 22, -1, 345, -1, 58, -1, + 372, 273, -1, 372, 115, -1, 86, 700, 840, -1, + 840, -1, 852, -1, 73, 711, -1, 268, 273, -1, + 273, -1, 429, 864, -1, 316, 220, 864, -1, 67, + 493, 633, 494, 847, -1, 436, 81, 700, -1, 115, + 634, -1, 172, 878, 36, 186, 836, -1, 332, 698, + 867, 875, 843, -1, 856, 837, -1, 283, 434, 838, + -1, 842, -1, 869, -1, 842, 869, -1, 869, 842, + -1, -1, 287, 493, 859, 494, -1, -1, 283, 79, + 135, -1, 283, 79, 120, 354, -1, 283, 79, 315, + 354, -1, -1, 493, 850, 494, -1, 266, 199, -1, + -1, 86, 700, 873, -1, 873, -1, 78, -1, 87, + -1, 116, -1, 186, -1, 198, -1, 388, -1, 391, + -1, 27, -1, 870, -1, 850, 497, 870, -1, 436, + 197, 861, -1, 117, -1, 268, 117, -1, 201, 118, + -1, 201, 190, -1, 455, 846, -1, 455, 281, -1, + 457, 281, -1, -1, 493, 860, 494, -1, 855, 195, + 849, -1, 855, 147, 849, -1, -1, 715, -1, 268, + 117, -1, 117, -1, 201, 190, -1, 201, 118, -1, + 268, 438, -1, 266, 199, -1, 706, 603, 844, 868, + -1, 841, -1, 859, 497, 841, -1, 863, -1, 860, + 497, 863, -1, 706, -1, 858, -1, 876, -1, 848, + -1, 715, 482, 835, -1, 715, -1, 455, 854, -1, + -1, 874, -1, -1, 706, -1, 493, 871, 494, -1, + -1, 868, 839, -1, -1, 283, 120, 838, -1, 715, + 482, 835, -1, 715, -1, 715, 495, 715, 482, 835, + -1, 715, 495, 715, -1, 866, -1, 871, 497, 866, + -1, 603, -1, 708, 712, 488, 423, -1, 373, 708, + 712, 488, 423, -1, 67, 493, 633, 494, 834, -1, + 429, 493, 871, 494, 864, 834, -1, 429, 851, 834, + -1, 316, 220, 493, 871, 494, 864, 834, -1, 316, + 220, 851, 834, -1, 165, 220, 493, 871, 494, 332, + 698, 867, 875, 843, 834, -1, 862, -1, 874, 497, + 862, -1, 244, 169, -1, 244, 301, -1, 244, 378, + -1, -1, 230, 698, 855, -1, 407, -1, 405, -1, + 234, 407, -1, 234, 405, -1, 174, 407, -1, 174, + 405, -1, 432, -1, -1, 30, -1, 54, 115, -1, + 111, 700, -1, 111, 313, 700, -1, 111, 27, -1, + 111, 313, 27, -1, 19, -1, 20, -1, 21, -1, + 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, + 28, -1, 29, -1, 30, -1, 38, -1, 39, -1, + 41, -1, 42, -1, 43, -1, 45, -1, 46, -1, + 47, -1, 54, -1, 55, -1, 56, -1, 57, -1, + 58, -1, 59, -1, 62, -1, 63, -1, 66, -1, + 68, -1, 69, -1, 70, -1, 71, -1, 76, -1, + 77, -1, 78, -1, 79, -1, 80, -1, 81, -1, + 83, -1, 84, -1, 85, -1, 87, -1, 88, -1, + 89, -1, 90, -1, 91, -1, 92, -1, 95, -1, + 96, -1, 97, -1, 105, -1, 106, -1, 107, -1, + 108, -1, 109, -1, 110, -1, 111, -1, 114, -1, + 116, -1, 118, -1, 119, -1, 120, -1, 121, -1, + 122, -1, 123, -1, 125, -1, 126, -1, 127, -1, + 128, -1, 129, -1, 132, -1, 133, -1, 134, -1, + 135, -1, 136, -1, 138, -1, 139, -1, 140, -1, + 142, -1, 143, -1, 144, -1, 146, -1, 147, -1, + 148, -1, 149, -1, 151, -1, 152, -1, 153, -1, + 154, -1, 157, -1, 159, -1, 160, -1, 162, -1, + 164, -1, 166, -1, 170, -1, 171, -1, 172, -1, + 174, -1, 176, -1, 180, -1, 182, -1, 183, -1, + 184, -1, 185, -1, 186, -1, 187, -1, 188, -1, + 190, -1, 191, -1, 192, -1, 193, -1, 195, -1, + 196, -1, 197, -1, 198, -1, 199, -1, 200, -1, + 202, -1, 205, -1, 206, -1, 207, -1, 208, -1, + 209, -1, 215, -1, 218, -1, 220, -1, 221, -1, + 222, -1, 223, -1, 224, -1, 227, -1, 229, -1, + 232, -1, 233, -1, 234, -1, 237, -1, 238, -1, + 239, -1, 240, -1, 241, -1, 243, -1, 244, -1, + 245, -1, 246, -1, 247, -1, 248, -1, 249, -1, + 250, -1, 251, -1, 252, -1, 253, -1, 254, -1, + 255, -1, 256, -1, 257, -1, 258, -1, 259, -1, + 260, -1, 264, -1, 265, -1, 266, -1, 269, -1, + 270, -1, 272, -1, 275, -1, 277, -1, 278, -1, + 279, -1, 281, -1, 282, -1, 285, -1, 286, -1, + 287, -1, 290, -1, 293, -1, 296, -1, 297, -1, + 298, -1, 299, -1, 300, -1, 301, -1, 302, -1, + 303, -1, 304, -1, 305, -1, 307, -1, 308, -1, + 310, -1, 311, -1, 313, -1, 314, -1, 315, -1, + 317, -1, 318, -1, 319, -1, 320, -1, 321, -1, + 322, -1, 324, -1, 325, -1, 326, -1, 328, -1, + 329, -1, 330, -1, 331, -1, 333, -1, 334, -1, + 335, -1, 336, -1, 337, -1, 338, -1, 339, -1, + 340, -1, 341, -1, 342, -1, 343, -1, 344, -1, + 345, -1, 347, -1, 348, -1, 350, -1, 351, -1, + 352, -1, 354, -1, 355, -1, 356, -1, 357, -1, + 358, -1, 359, -1, 360, -1, 361, -1, 362, -1, + 363, -1, 364, -1, 366, -1, 367, -1, 368, -1, + 369, -1, 370, -1, 372, -1, 374, -1, 375, -1, + 376, -1, 378, -1, 379, -1, 381, -1, 383, -1, + 384, -1, 385, -1, 386, -1, 387, -1, 388, -1, + 389, -1, 390, -1, 391, -1, 392, -1, 393, -1, + 395, -1, 397, -1, 399, -1, 400, -1, 402, -1, + 404, -1, 405, -1, 406, -1, 407, -1, 408, -1, + 414, -1, 415, -1, 417, -1, 420, -1, 421, -1, + 423, -1, 424, -1, 425, -1, 426, -1, 427, -1, + 430, -1, 431, -1, 432, -1, 433, -1, 434, -1, + 437, -1, 438, -1, 439, -1, 440, -1, 441, -1, + 445, -1, 447, -1, 448, -1, 449, -1, 450, -1, + 453, -1, 456, -1, 457, -1, 458, -1, 459, -1, + 460, -1, 461, -1, 473, -1, 474, -1, 475, -1, + 476, -1, 48, -1, 49, -1, 51, -1, 52, -1, + 64, -1, 65, -1, 72, -1, 112, -1, 113, -1, 150, -1, 155, -1, 161, -1, 178, -1, 179, -1, - 204, -1, 211, -1, 213, -1, 210, -1, 242, -1, + 204, -1, 210, -1, 211, -1, 213, -1, 242, -1, 261, -1, 263, -1, 267, -1, 274, -1, 276, -1, - 291, -1, 295, -1, 309, -1, 312, -1, 326, -1, - 352, -1, 372, -1, 379, -1, 393, -1, 395, -1, - 409, -1, 410, -1, 415, -1, 417, -1, 421, -1, - 441, -1, 442, -1, 461, -1, 462, -1, 463, -1, - 464, -1, 465, -1, 466, -1, 467, -1, 468, -1, - 469, -1, 470, -1, 471, -1, 44, -1, 50, -1, + 291, -1, 295, -1, 309, -1, 312, -1, 327, -1, + 353, -1, 373, -1, 380, -1, 394, -1, 396, -1, + 410, -1, 411, -1, 416, -1, 418, -1, 422, -1, + 442, -1, 443, -1, 462, -1, 463, -1, 464, -1, + 465, -1, 466, -1, 467, -1, 468, -1, 469, -1, + 470, -1, 471, -1, 472, -1, 44, -1, 50, -1, 74, -1, 82, -1, 94, -1, 101, -1, 167, -1, 169, -1, 173, -1, 189, -1, 203, -1, 216, -1, 217, -1, 219, -1, 228, -1, 230, -1, 242, -1, - 262, -1, 271, -1, 292, -1, 294, -1, 348, -1, - 376, -1, 393, -1, 402, -1, 421, -1, 445, -1, - 27, -1, 31, -1, 32, -1, 33, -1, 34, -1, - 35, -1, 36, -1, 37, -1, 40, -1, 53, -1, - 60, -1, 61, -1, 67, -1, 73, -1, 75, -1, - 86, -1, 93, -1, 98, -1, 99, -1, 100, -1, - 102, -1, 103, -1, 104, -1, 115, -1, 117, -1, - 124, -1, 130, -1, 131, -1, 137, -1, 141, -1, - 145, -1, 156, -1, 158, -1, 163, -1, 165, -1, - 168, -1, 175, -1, 177, -1, 181, -1, 194, -1, - 201, -1, 212, -1, 214, -1, 225, -1, 226, -1, - 231, -1, 235, -1, 236, -1, 268, -1, 273, -1, - 280, -1, 283, -1, 284, -1, 288, -1, 289, -1, - 306, -1, 316, -1, 331, -1, 345, -1, 364, -1, - 370, -1, 381, -1, 397, -1, 400, -1, 408, -1, - 411, -1, 412, -1, 418, -1, 427, -1, 428, -1, - 434, -1, 435, -1, 443, -1, 450, -1, 451, -1, - 453, -1, 454, -1 + 262, -1, 271, -1, 292, -1, 294, -1, 349, -1, + 377, -1, 394, -1, 403, -1, 446, -1, 44, -1, + 50, -1, 74, -1, 82, -1, 94, -1, 101, -1, + 167, -1, 169, -1, 173, -1, 189, -1, 203, -1, + 216, -1, 217, -1, 219, -1, 228, -1, 230, -1, + 262, -1, 271, -1, 292, -1, 294, -1, 349, -1, + 377, -1, 403, -1, 422, -1, 446, -1, 48, -1, + 49, -1, 51, -1, 52, -1, 65, -1, 64, -1, + 72, -1, 112, -1, 113, -1, 150, -1, 155, -1, + 161, -1, 178, -1, 179, -1, 204, -1, 211, -1, + 213, -1, 210, -1, 242, -1, 261, -1, 263, -1, + 267, -1, 274, -1, 276, -1, 291, -1, 295, -1, + 309, -1, 312, -1, 327, -1, 353, -1, 373, -1, + 380, -1, 394, -1, 396, -1, 410, -1, 411, -1, + 416, -1, 418, -1, 422, -1, 442, -1, 443, -1, + 462, -1, 463, -1, 464, -1, 465, -1, 466, -1, + 467, -1, 468, -1, 469, -1, 470, -1, 471, -1, + 472, -1, 44, -1, 50, -1, 74, -1, 82, -1, + 94, -1, 101, -1, 167, -1, 169, -1, 173, -1, + 189, -1, 203, -1, 216, -1, 217, -1, 219, -1, + 228, -1, 230, -1, 242, -1, 262, -1, 271, -1, + 292, -1, 294, -1, 349, -1, 377, -1, 394, -1, + 403, -1, 422, -1, 446, -1, 27, -1, 31, -1, + 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, + 37, -1, 40, -1, 53, -1, 60, -1, 61, -1, + 67, -1, 73, -1, 75, -1, 86, -1, 93, -1, + 98, -1, 99, -1, 100, -1, 102, -1, 103, -1, + 104, -1, 115, -1, 117, -1, 124, -1, 130, -1, + 131, -1, 137, -1, 141, -1, 145, -1, 156, -1, + 158, -1, 163, -1, 165, -1, 168, -1, 175, -1, + 177, -1, 181, -1, 194, -1, 201, -1, 212, -1, + 214, -1, 225, -1, 226, -1, 231, -1, 235, -1, + 236, -1, 268, -1, 273, -1, 280, -1, 283, -1, + 284, -1, 288, -1, 289, -1, 306, -1, 316, -1, + 323, -1, 332, -1, 346, -1, 365, -1, 371, -1, + 382, -1, 398, -1, 401, -1, 409, -1, 412, -1, + 413, -1, 419, -1, 428, -1, 429, -1, 435, -1, + 436, -1, 444, -1, 451, -1, 452, -1, 454, -1, + 455, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -2341,183 +2344,183 @@ static const yytype_uint16 yyrline[] = 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 537, - 9, 18, 27, 36, 45, 54, 63, 72, 85, 87, - 93, 94, 99, 103, 107, 118, 126, 130, 139, 148, - 157, 166, 175, 184, 192, 200, 209, 218, 227, 236, - 253, 262, 271, 280, 290, 303, 318, 327, 335, 350, - 358, 368, 378, 385, 392, 400, 407, 418, 419, 424, - 428, 433, 438, 446, 447, 452, 456, 457, 458, 7, - 20, 7, 14, 22, 7, 16, 25, 34, 43, 52, + 9, 19, 29, 39, 49, 59, 69, 79, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 112, 113, 114, 115, 116, 117, 118, + 123, 124, 129, 130, 131, 136, 137, 138, 141, 142, 9, 16, 26, 33, 44, 45, 50, 51, 52, 57, 58, 59, 60, 61, 65, 66, 67, 72, 73, 78, 82, 90, 91, 96, 97, 98, 104, 109, 117, 118, - 7, 14, 20, 28, 29, 9, 19, 8, 21, 27, - 34, 40, 47, 57, 61, 70, 79, 88, 95, 96, - 101, 113, 118, 143, 153, 163, 169, 180, 191, 206, - 207, 213, 214, 219, 220, 226, 227, 231, 232, 237, - 239, 245, 246, 250, 251, 256, 6, 15, 25, 35, - 45, 55, 65, 75, 85, 95, 106, 117, 127, 140, - 141, 9, 17, 29, 30, 34, 35, 36, 41, 42, - 43, 48, 52, 56, 60, 64, 68, 72, 76, 80, - 84, 88, 92, 97, 101, 105, 112, 113, 117, 118, - 119, 7, 21, 36, 56, 57, 84, 85, 86, 87, - 88, 89, 93, 94, 99, 104, 105, 106, 107, 108, - 113, 120, 121, 122, 139, 146, 153, 163, 173, 185, - 193, 202, 211, 230, 237, 242, 244, 246, 248, 251, - 256, 257, 261, 262, 263, 264, 269, 273, 274, 279, - 286, 291, 292, 293, 294, 295, 296, 297, 298, 304, - 305, 309, 314, 321, 328, 335, 347, 348, 349, 350, - 354, 359, 360, 361, 366, 371, 372, 373, 374, 375, - 376, 381, 404, 408, 415, 416, 420, 424, 425, 426, - 430, 434, 442, 443, 448, 449, 453, 461, 462, 467, - 468, 472, 477, 481, 485, 490, 498, 499, 503, 504, - 510, 521, 534, 548, 562, 576, 590, 613, 617, 624, - 628, 636, 641, 648, 658, 659, 660, 661, 662, 669, - 676, 677, 682, 683, 9, 19, 32, 33, 3, 10, - 17, 24, 31, 38, 45, 55, 55, 57, 58, 2, - 7, 14, 24, 25, 32, 8, 33, 62, 66, 67, - 72, 73, 78, 79, 83, 84, 89, 90, 11, 24, - 41, 42, 43, 48, 7, 13, 19, 25, 2, 9, - 15, 21, 28, 35, 45, 46, 47, 8, 21, 34, - 52, 74, 75, 76, 77, 8, 22, 36, 48, 56, - 70, 71, 72, 73, 74, 87, 88, 93, 94, 98, - 99, 6, 10, 16, 22, 28, 38, 39, 47, 58, - 70, 78, 86, 93, 103, 105, 111, 115, 119, 134, - 141, 142, 143, 147, 148, 1, 30, 53, 54, 59, - 63, 68, 72, 80, 81, 85, 86, 91, 92, 96, - 97, 102, 103, 104, 105, 106, 111, 119, 123, 128, - 129, 134, 138, 143, 147, 151, 155, 159, 163, 167, - 171, 175, 179, 183, 187, 191, 195, 203, 209, 210, - 211, 216, 220, 7, 18, 19, 23, 27, 5, 11, - 7, 18, 19, 23, 24, 25, 26, 7, 47, 48, - 52, 53, 68, 69, 76, 84, 92, 100, 108, 116, - 127, 128, 155, 170, 186, 187, 206, 210, 214, 231, - 238, 245, 255, 256, 259, 271, 282, 290, 295, 300, - 305, 310, 318, 326, 331, 336, 343, 344, 348, 349, - 350, 357, 358, 362, 363, 367, 368, 369, 373, 374, - 378, 382, 383, 386, 395, 406, 407, 408, 411, 412, - 413, 417, 418, 419, 420, 424, 425, 429, 431, 447, - 449, 454, 457, 465, 469, 473, 477, 481, 485, 492, - 497, 504, 505, 509, 513, 517, 521, 528, 535, 536, - 541, 542, 546, 547, 552, 554, 556, 561, 581, 582, - 584, 589, 590, 594, 595, 598, 599, 624, 625, 629, - 630, 634, 635, 636, 637, 638, 642, 655, 662, 669, - 676, 677, 681, 682, 686, 687, 691, 692, 696, 697, - 701, 712, 713, 714, 715, 719, 720, 725, 726, 727, - 736, 742, 760, 761, 765, 766, 772, 778, 786, 794, - 803, 812, 816, 842, 846, 859, 873, 888, 900, 916, - 922, 927, 933, 940, 941, 949, 953, 957, 963, 970, - 975, 976, 977, 978, 982, 983, 995, 996, 1001, 1008, - 1015, 1022, 1054, 1065, 1078, 1083, 1084, 1087, 1088, 1091, - 1092, 1097, 1098, 1103, 1107, 1113, 1134, 1142, 1155, 1158, - 1162, 1162, 1164, 1169, 1176, 1181, 1187, 1192, 1198, 1204, - 1213, 1215, 1218, 1222, 1223, 1224, 1225, 1226, 1227, 1232, - 1252, 1253, 1254, 1255, 1266, 1280, 1281, 1287, 1292, 1297, - 1302, 1307, 1312, 1317, 1322, 1328, 1334, 1340, 1347, 1369, - 1378, 1382, 1390, 1394, 1402, 1414, 1435, 1439, 1445, 1449, - 1462, 1470, 1480, 1482, 1484, 1486, 1488, 1490, 1495, 1496, - 1503, 1512, 1520, 1529, 1540, 1548, 1549, 1550, 1554, 1554, - 1557, 1557, 1560, 1560, 1563, 1563, 1566, 1566, 1569, 1569, - 1572, 1572, 1575, 1575, 1578, 1580, 1582, 1584, 1586, 1588, - 1590, 1592, 1594, 1599, 1604, 1610, 1617, 1622, 1628, 1634, - 1665, 1667, 1669, 1677, 1692, 1694, 1696, 1698, 1700, 1702, - 1704, 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1721, 1723, - 1725, 1728, 1730, 1732, 1734, 1737, 1742, 1747, 1754, 1759, - 1766, 1771, 1779, 1784, 1793, 1801, 1809, 1817, 1835, 1843, - 1851, 1859, 1867, 1875, 1879, 1883, 1887, 1895, 1903, 1919, - 1927, 1935, 1943, 1951, 1959, 1967, 1971, 1975, 1979, 1983, - 1991, 1999, 2007, 2015, 2035, 2057, 2068, 2075, 2089, 2105, - 2107, 2109, 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125, - 2127, 2129, 2131, 2133, 2135, 2137, 2139, 2141, 2143, 2147, - 2151, 2155, 2169, 2170, 2171, 2178, 2190, 2205, 2217, 2219, - 2231, 2242, 2266, 2277, 2286, 2290, 2297, 2305, 2313, 2324, - 2332, 2360, 2395, 2406, 2407, 2414, 2420, 2424, 2428, 2432, - 2436, 2440, 2444, 2448, 2452, 2456, 2460, 2464, 2468, 2472, - 2476, 2480, 2482, 2484, 2488, 2497, 2502, 2509, 2524, 2531, - 2535, 2539, 2543, 2547, 2561, 2562, 2566, 2567, 2575, 2576, - 2580, 2581, 2586, 2594, 2596, 2610, 2613, 2640, 2641, 2644, - 2645, 2656, 2662, 2669, 2678, 2695, 2740, 2748, 2756, 2764, - 2772, 2793, 2794, 2797, 2798, 2802, 2812, 2813, 2815, 2816, - 2817, 2820, 2821, 2824, 2825, 2826, 2827, 2828, 2829, 2830, - 2831, 2832, 2833, 2834, 2835, 2838, 2840, 2845, 2847, 2852, - 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2880, 2882, 2886, - 2890, 2897, 2902, 2909, 2913, 2919, 2923, 2932, 2943, 2944, - 2948, 2952, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, - 2967, 2968, 2978, 2982, 2989, 2996, 2997, 3013, 3017, 3022, - 3026, 3041, 3046, 3050, 3053, 3056, 3057, 3058, 3061, 3068, - 3078, 3092, 3093, 3097, 3108, 3109, 3112, 3113, 3116, 3120, - 3127, 3131, 3139, 3150, 3151, 3155, 3156, 3160, 3161, 3164, - 3165, 3175, 3176, 3180, 3181, 3184, 3200, 3208, 3216, 3231, - 3249, 3250, 3253, 3254, 3257, 3261, 3262, 3265, 3266, 3267, - 3277, 3278, 3289, 3293, 3320, 3322, 3327, 3329, 3339, 3342, - 3353, 3357, 3361, 3373, 3377, 3386, 3393, 3431, 3435, 3439, - 3443, 3447, 3451, 3455, 3461, 3462, 3478, 3479, 3480, 3483, - 3484, 3490, 3491, 3492, 3495, 3496, 3497, 3500, 3501, 3502, - 3505, 3506, 3509, 3511, 3516, 3517, 3520, 3528, 3529, 3530, - 3531, 3534, 3535, 7, 21, 25, 32, 43, 44, 50, - 51, 7, 16, 34, 41, 46, 47, 48, 49, 9, - 19, 29, 39, 49, 59, 69, 79, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 112, 113, 114, 115, 116, 117, 118, 123, - 124, 129, 130, 131, 136, 137, 138, 141, 142, 7, - 17, 18, 21, 23, 7, 14, 31, 51, 52, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62 + 47, 48, 52, 53, 68, 69, 76, 84, 92, 100, + 108, 116, 127, 128, 155, 171, 188, 189, 208, 212, + 216, 233, 240, 247, 257, 258, 261, 273, 284, 292, + 297, 302, 307, 312, 320, 328, 333, 338, 345, 346, + 350, 351, 352, 359, 360, 364, 365, 369, 370, 371, + 375, 376, 380, 384, 385, 388, 397, 408, 409, 410, + 413, 414, 415, 419, 420, 421, 422, 426, 427, 431, + 433, 449, 451, 456, 459, 467, 471, 475, 479, 483, + 487, 494, 499, 506, 507, 511, 515, 519, 523, 530, + 537, 538, 543, 544, 548, 549, 554, 556, 558, 563, + 583, 584, 586, 591, 592, 596, 597, 600, 601, 626, + 627, 631, 632, 636, 637, 638, 639, 640, 644, 657, + 664, 671, 678, 679, 683, 684, 688, 689, 693, 694, + 698, 699, 703, 704, 708, 719, 720, 721, 722, 726, + 727, 732, 733, 734, 743, 749, 767, 768, 772, 773, + 779, 785, 793, 801, 810, 819, 823, 849, 853, 866, + 880, 895, 907, 923, 929, 934, 940, 947, 948, 956, + 960, 964, 970, 977, 982, 983, 984, 985, 989, 990, + 1002, 1003, 1008, 1015, 1022, 1029, 1061, 1072, 1085, 1090, + 1091, 1094, 1095, 1098, 1099, 1104, 1105, 1110, 1114, 1120, + 1141, 1149, 1162, 1165, 1169, 1169, 1171, 1176, 1183, 1188, + 1194, 1199, 1205, 1211, 1220, 1222, 1225, 1229, 1230, 1231, + 1232, 1233, 1234, 1239, 1259, 1260, 1261, 1262, 1273, 1287, + 1288, 1294, 1299, 1304, 1309, 1314, 1319, 1324, 1329, 1335, + 1341, 1347, 1354, 1376, 1385, 1389, 1397, 1401, 1409, 1421, + 1442, 1446, 1452, 1456, 1469, 1477, 1487, 1489, 1491, 1493, + 1495, 1497, 1502, 1503, 1510, 1519, 1527, 1536, 1547, 1555, + 1556, 1557, 1561, 1561, 1564, 1564, 1567, 1567, 1570, 1570, + 1573, 1573, 1576, 1576, 1579, 1579, 1582, 1582, 1585, 1587, + 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1606, 1611, 1617, + 1624, 1629, 1635, 1641, 1672, 1674, 1676, 1684, 1699, 1701, + 1703, 1705, 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721, + 1723, 1725, 1728, 1730, 1732, 1735, 1737, 1739, 1741, 1744, + 1749, 1754, 1761, 1766, 1773, 1778, 1786, 1791, 1800, 1808, + 1816, 1824, 1842, 1850, 1858, 1866, 1874, 1882, 1886, 1890, + 1894, 1902, 1910, 1926, 1934, 1942, 1950, 1958, 1966, 1974, + 1978, 1982, 1986, 1990, 1998, 2006, 2014, 2022, 2042, 2064, + 2075, 2082, 2096, 2112, 2114, 2116, 2118, 2120, 2122, 2124, + 2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140, 2142, 2144, + 2146, 2148, 2150, 2154, 2158, 2162, 2176, 2177, 2178, 2185, + 2197, 2212, 2224, 2226, 2238, 2249, 2273, 2284, 2293, 2297, + 2304, 2312, 2320, 2331, 2339, 2367, 2402, 2413, 2414, 2421, + 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459, 2463, + 2467, 2471, 2475, 2479, 2483, 2487, 2489, 2491, 2495, 2504, + 2509, 2516, 2531, 2538, 2542, 2546, 2550, 2554, 2568, 2569, + 2573, 2574, 2582, 2583, 2587, 2588, 2593, 2601, 2603, 2617, + 2620, 2647, 2648, 2651, 2652, 2663, 2669, 2676, 2685, 2702, + 2747, 2755, 2763, 2771, 2779, 2800, 2801, 2804, 2805, 2809, + 2819, 2820, 2822, 2823, 2824, 2827, 2828, 2831, 2832, 2833, + 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2845, + 2847, 2852, 2854, 2859, 2861, 2863, 2865, 2867, 2869, 2871, + 2873, 2887, 2889, 2893, 2897, 2904, 2909, 2916, 2920, 2926, + 2930, 2939, 2950, 2951, 2955, 2959, 2966, 2967, 2968, 2969, + 2970, 2971, 2972, 2973, 2974, 2975, 2985, 2989, 2996, 3003, + 3004, 3020, 3024, 3029, 3033, 3048, 3053, 3057, 3060, 3063, + 3064, 3065, 3068, 3075, 3085, 3099, 3100, 3104, 3115, 3116, + 3119, 3120, 3123, 3127, 3134, 3138, 3146, 3157, 3158, 3162, + 3163, 3167, 3168, 3171, 3172, 3182, 3183, 3187, 3188, 3191, + 3207, 3215, 3223, 3238, 3256, 3257, 3260, 3261, 3264, 3268, + 3269, 3272, 3273, 3274, 3284, 3285, 3296, 3300, 3327, 3329, + 3334, 3336, 3346, 3349, 3360, 3364, 3368, 3380, 3384, 3393, + 3400, 3438, 3442, 3446, 3450, 3454, 3458, 3462, 3468, 3469, + 3485, 3486, 3487, 3490, 3491, 3497, 3498, 3499, 3502, 3503, + 3504, 3507, 3508, 3509, 3512, 3513, 3516, 3518, 3523, 3524, + 3527, 3535, 3536, 3537, 3538, 3541, 3542, 7, 16, 25, + 34, 43, 52, 7, 20, 8, 33, 62, 66, 67, + 72, 73, 78, 79, 83, 84, 89, 90, 2, 9, + 15, 21, 28, 35, 45, 46, 47, 7, 9, 18, + 27, 36, 45, 54, 63, 72, 85, 87, 93, 94, + 99, 103, 107, 118, 126, 130, 139, 148, 157, 166, + 175, 184, 192, 200, 209, 218, 227, 236, 253, 262, + 271, 280, 290, 303, 318, 327, 335, 350, 358, 368, + 378, 385, 392, 400, 407, 418, 419, 424, 428, 433, + 438, 446, 447, 452, 456, 457, 458, 7, 18, 19, + 23, 27, 8, 22, 36, 48, 56, 70, 71, 72, + 73, 74, 87, 88, 93, 94, 98, 99, 7, 14, + 22, 7, 17, 18, 21, 23, 1, 30, 53, 54, + 59, 63, 68, 72, 80, 81, 85, 86, 91, 92, + 96, 97, 102, 103, 104, 105, 106, 111, 119, 123, + 128, 129, 134, 138, 143, 147, 151, 155, 159, 163, + 167, 171, 175, 179, 183, 187, 191, 195, 203, 209, + 210, 211, 216, 220, 10, 16, 22, 28, 38, 39, + 47, 58, 70, 78, 86, 93, 103, 105, 111, 115, + 119, 134, 141, 142, 143, 147, 148, 6, 5, 11, + 7, 21, 25, 32, 43, 44, 50, 51, 6, 15, + 25, 35, 45, 55, 65, 75, 85, 95, 106, 117, + 127, 140, 141, 11, 24, 41, 42, 43, 48, 8, + 21, 34, 52, 74, 75, 76, 77, 7, 16, 34, + 41, 46, 47, 48, 49, 9, 19, 32, 33, 3, + 10, 17, 24, 31, 38, 45, 55, 55, 57, 58, + 7, 18, 19, 23, 24, 25, 26, 9, 17, 29, + 30, 34, 35, 36, 41, 42, 43, 48, 52, 56, + 60, 64, 68, 72, 76, 80, 84, 88, 92, 97, + 101, 105, 112, 113, 117, 118, 119, 9, 19, 7, + 14, 20, 28, 29, 8, 21, 27, 34, 40, 47, + 57, 61, 70, 79, 88, 95, 96, 101, 113, 118, + 143, 153, 163, 169, 180, 191, 206, 207, 213, 214, + 219, 220, 226, 227, 231, 232, 237, 239, 245, 246, + 250, 251, 256, 7, 14, 31, 51, 52, 2, 7, + 14, 24, 25, 32, 7, 21, 36, 56, 57, 84, + 85, 86, 87, 88, 89, 93, 94, 99, 104, 105, + 106, 107, 108, 113, 120, 121, 122, 139, 146, 153, + 163, 173, 185, 193, 202, 211, 230, 237, 242, 244, + 246, 248, 251, 256, 257, 261, 262, 263, 264, 269, + 273, 274, 279, 286, 291, 292, 293, 294, 295, 296, + 297, 298, 304, 305, 309, 314, 321, 328, 335, 347, + 348, 349, 350, 354, 359, 360, 361, 366, 371, 372, + 373, 374, 375, 376, 381, 404, 408, 415, 416, 420, + 424, 425, 426, 430, 434, 442, 443, 448, 449, 453, + 461, 462, 467, 468, 472, 477, 481, 485, 490, 498, + 499, 503, 504, 510, 521, 534, 548, 562, 576, 590, + 613, 617, 624, 628, 636, 641, 648, 658, 659, 660, + 661, 662, 669, 676, 677, 682, 683, 7, 13, 19, + 25, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40 }; #endif @@ -2577,13 +2580,13 @@ static const char *const yytname[] = "PLACING", "PLANS", "POLICY", "POSITION", "PRAGMA_P", "PRECEDING", "PRECISION", "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROGRAM", "PUBLICATION", - "QUOTE", "RANGE", "READ_P", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", - "REF", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P", - "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", - "RESPECT_P", "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", - "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "RULE", "SAMPLE", - "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P", - "SECONDS_P", "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", + "QUALIFY", "QUOTE", "RANGE", "READ_P", "REAL", "REASSIGN", "RECHECK", + "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", + "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", + "RESET", "RESPECT_P", "RESTART", "RESTRICT", "RETURNING", "RETURNS", + "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "RULE", + "SAMPLE", "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", + "SECOND_P", "SECONDS_P", "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", "STABLE", "STANDALONE_P", "START", @@ -2605,64 +2608,26 @@ static const char *const yytname[] = "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "'{'", "'}'", "'#'", "'?'", "':'", "$accept", "stmtblock", "stmtmulti", - "stmt", "AlterTableStmt", "alter_identity_column_option_list", - "alter_column_default", "alter_identity_column_option", - "alter_generic_option_list", "alter_table_cmd", "alter_using", - "alter_generic_option_elem", "alter_table_cmds", "alter_generic_options", - "opt_set_data", "ExportStmt", "ImportStmt", "PragmaStmt", - "AlterObjectSchemaStmt", "ExplainStmt", "opt_verbose", - "explain_option_arg", "ExplainableStmt", "NonReservedWord", - "NonReservedWord_or_Sconst", "explain_option_list", "analyze_keyword", - "opt_boolean_or_string", "explain_option_elem", "explain_option_name", - "LoadStmt", "file_name", "AnalyzeStmt", "InsertStmt", "insert_rest", - "insert_target", "opt_conf_expr", "opt_with_clause", - "insert_column_item", "set_clause", "opt_on_conflict", "index_elem", - "returning_clause", "override_kind", "set_target_list", "opt_collate", - "opt_class", "insert_column_list", "set_clause_list", "index_params", - "set_target", "RenameStmt", "opt_column", "AlterSeqStmt", "SeqOptList", - "opt_with", "NumericOnly", "SeqOptElem", "opt_by", "SignedIconst", - "CreateStmt", "ConstraintAttributeSpec", "def_arg", - "OptParenthesizedSeqOptList", "generic_option_arg", "key_action", - "ColConstraint", "ColConstraintElem", "generic_option_elem", - "key_update", "key_actions", "create_generic_options", "OnCommitOption", - "reloptions", "opt_no_inherit", "TableConstraint", "TableLikeOption", - "reloption_list", "ExistingIndex", "ConstraintAttr", "OptWith", - "definition", "TableLikeOptionList", "generic_option_name", - "ConstraintAttributeElem", "columnDef", "generic_option_list", - "def_list", "index_name", "TableElement", "def_elem", "opt_definition", - "OptTableElementList", "columnElem", "opt_column_list", "ColQualList", - "key_delete", "reloption_elem", "columnList", "func_type", - "ConstraintElem", "TableElementList", "key_match", "TableLikeClause", - "OptTemp", "generated_when", "CreateSeqStmt", "OptSeqOptList", - "VariableShowStmt", "show_or_describe", "var_name", "VariableResetStmt", - "generic_reset", "reset_rest", "IndexStmt", "access_method", - "access_method_clause", "opt_concurrently", "opt_index_name", - "opt_reloptions", "opt_unique", "CreateAsStmt", "opt_with_data", - "create_as_target", "DeallocateStmt", "TransactionStmt", - "opt_transaction", "ViewStmt", "opt_check_option", "VacuumStmt", - "vacuum_option_elem", "opt_full", "vacuum_option_list", "opt_freeze", - "CallStmt", "VariableSetStmt", "set_rest", "generic_set", "var_value", - "zone_value", "var_list", "CopyStmt", "copy_from", "copy_delimiter", - "copy_generic_opt_arg_list", "opt_using", "opt_as", "opt_program", - "copy_options", "copy_generic_opt_arg", "copy_generic_opt_elem", - "opt_oids", "copy_opt_list", "opt_binary", "copy_opt_item", - "copy_generic_opt_arg_list_item", "copy_file_name", - "copy_generic_opt_list", "CreateFunctionStmt", "macro_alias", - "param_list", "CheckPointStmt", "PrepareStmt", "prep_type_clause", - "PreparableStmt", "UpdateStmt", "SelectStmt", "select_with_parens", - "select_no_parens", "select_clause", "simple_select", "with_clause", - "cte_list", "common_table_expr", "into_clause", "OptTempTableName", - "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause", - "opt_ignore_nulls", "opt_sort_clause", "sort_clause", "sortby_list", - "sortby", "opt_asc_desc", "opt_nulls_order", "select_limit", - "opt_select_limit", "limit_clause", "offset_clause", "sample_count", - "sample_clause", "opt_sample_func", "tablesample_entry", - "tablesample_clause", "opt_tablesample_clause", "opt_repeatable_clause", - "select_limit_value", "select_offset_value", "select_fetch_first_value", - "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", - "group_by_list", "group_by_item", "empty_grouping_set", "rollup_clause", - "cube_clause", "grouping_sets_clause", "grouping_or_grouping_id", - "having_clause", "for_locking_clause", "opt_for_locking_clause", + "stmt", "DropStmt", "drop_type_any_name", "drop_type_name", + "any_name_list", "opt_drop_behavior", "drop_type_name_on_any_name", + "type_name_list", "ExplainStmt", "opt_verbose", "explain_option_arg", + "ExplainableStmt", "NonReservedWord", "NonReservedWord_or_Sconst", + "explain_option_list", "analyze_keyword", "opt_boolean_or_string", + "explain_option_elem", "explain_option_name", "SelectStmt", + "select_with_parens", "select_no_parens", "select_clause", + "simple_select", "with_clause", "cte_list", "common_table_expr", + "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", + "distinct_clause", "opt_all_clause", "opt_ignore_nulls", + "opt_sort_clause", "sort_clause", "sortby_list", "sortby", + "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit", + "limit_clause", "offset_clause", "sample_count", "sample_clause", + "opt_sample_func", "tablesample_entry", "tablesample_clause", + "opt_tablesample_clause", "opt_repeatable_clause", "select_limit_value", + "select_offset_value", "select_fetch_first_value", "I_or_F_const", + "row_or_rows", "first_or_next", "group_clause", "group_by_list", + "group_by_item", "empty_grouping_set", "rollup_clause", "cube_clause", + "grouping_sets_clause", "grouping_or_grouping_id", "having_clause", + "qualify_clause", "for_locking_clause", "opt_for_locking_clause", "for_locking_items", "for_locking_item", "for_locking_strength", "locked_rels_list", "opt_nowait_or_skip", "values_clause", "from_clause", "from_list", "table_ref", "joined_table", "alias_clause", @@ -2699,15 +2664,53 @@ static const char *const yytname[] = "AexprConst", "Iconst", "Sconst", "ColId", "ColIdOrString", "type_function_name", "function_name_token", "type_name_token", "any_name", "attrs", "opt_name_list", "param_name", "ColLabel", - "ColLabelOrString", "DeleteStmt", "relation_expr_opt_alias", - "where_or_current_clause", "using_clause", "CreateSchemaStmt", - "OptSchemaEltList", "schema_stmt", "DropStmt", "drop_type_any_name", - "drop_type_name", "any_name_list", "opt_drop_behavior", - "drop_type_name_on_any_name", "type_name_list", "CreateEnumStmt", - "opt_enum_val_list", "enum_val_list", "ExecuteStmt", - "execute_param_clause", "unreserved_keyword", "col_name_keyword", - "func_name_keyword", "type_name_keyword", "other_keyword", - "type_func_name_keyword", "reserved_keyword", 0 + "ColLabelOrString", "AlterObjectSchemaStmt", "ExportStmt", "ImportStmt", + "IndexStmt", "access_method", "access_method_clause", "opt_concurrently", + "opt_index_name", "opt_reloptions", "opt_unique", "TransactionStmt", + "opt_transaction", "UpdateStmt", "AlterTableStmt", + "alter_identity_column_option_list", "alter_column_default", + "alter_identity_column_option", "alter_generic_option_list", + "alter_table_cmd", "alter_using", "alter_generic_option_elem", + "alter_table_cmds", "alter_generic_options", "opt_set_data", + "CreateFunctionStmt", "macro_alias", "param_list", "VacuumStmt", + "vacuum_option_elem", "opt_full", "vacuum_option_list", "opt_freeze", + "PragmaStmt", "CreateEnumStmt", "opt_enum_val_list", "enum_val_list", + "CopyStmt", "copy_from", "copy_delimiter", "copy_generic_opt_arg_list", + "opt_using", "opt_as", "opt_program", "copy_options", + "copy_generic_opt_arg", "copy_generic_opt_elem", "opt_oids", + "copy_opt_list", "opt_binary", "copy_opt_item", + "copy_generic_opt_arg_list_item", "copy_file_name", + "copy_generic_opt_list", "VariableSetStmt", "set_rest", "generic_set", + "var_value", "zone_value", "var_list", "CallStmt", "CheckPointStmt", + "DeleteStmt", "relation_expr_opt_alias", "where_or_current_clause", + "using_clause", "RenameStmt", "opt_column", "CreateAsStmt", + "opt_with_data", "create_as_target", "ViewStmt", "opt_check_option", + "CreateSchemaStmt", "OptSchemaEltList", "schema_stmt", "CreateSeqStmt", + "OptSeqOptList", "VariableShowStmt", "show_or_describe", "var_name", + "PrepareStmt", "prep_type_clause", "PreparableStmt", "AlterSeqStmt", + "SeqOptList", "opt_with", "NumericOnly", "SeqOptElem", "opt_by", + "SignedIconst", "AnalyzeStmt", "LoadStmt", "file_name", "InsertStmt", + "insert_rest", "insert_target", "opt_conf_expr", "opt_with_clause", + "insert_column_item", "set_clause", "opt_on_conflict", "index_elem", + "returning_clause", "override_kind", "set_target_list", "opt_collate", + "opt_class", "insert_column_list", "set_clause_list", "index_params", + "set_target", "ExecuteStmt", "execute_param_clause", "VariableResetStmt", + "generic_reset", "reset_rest", "CreateStmt", "ConstraintAttributeSpec", + "def_arg", "OptParenthesizedSeqOptList", "generic_option_arg", + "key_action", "ColConstraint", "ColConstraintElem", + "generic_option_elem", "key_update", "key_actions", + "create_generic_options", "OnCommitOption", "reloptions", + "opt_no_inherit", "TableConstraint", "TableLikeOption", "reloption_list", + "ExistingIndex", "ConstraintAttr", "OptWith", "definition", + "TableLikeOptionList", "generic_option_name", "ConstraintAttributeElem", + "columnDef", "generic_option_list", "def_list", "index_name", + "TableElement", "def_elem", "opt_definition", "OptTableElementList", + "columnElem", "opt_column_list", "ColQualList", "key_delete", + "reloption_elem", "columnList", "func_type", "ConstraintElem", + "TableElementList", "key_match", "TableLikeClause", "OptTemp", + "generated_when", "DeallocateStmt", "unreserved_keyword", + "col_name_keyword", "func_name_keyword", "type_name_keyword", + "other_keyword", "type_func_name_keyword", "reserved_keyword", 0 }; #endif @@ -2763,197 +2766,197 @@ static const yytype_uint16 yytoknum[] = 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 60, - 62, 61, 734, 43, 45, 42, 47, 37, 94, 735, - 91, 93, 40, 41, 46, 59, 44, 123, 125, 35, - 63, 58 + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 60, 62, 61, 735, 43, 45, 42, 47, 37, 94, + 736, 91, 93, 40, 41, 46, 59, 44, 123, 125, + 35, 63, 58 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 502, 503, 504, 504, 505, 505, 505, 505, 505, - 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, - 506, 506, 506, 506, 506, 506, 506, 506, 507, 507, - 508, 508, 509, 509, 509, 509, 510, 510, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 512, 512, 513, - 513, 513, 513, 514, 514, 515, 516, 516, 516, 517, - 518, 519, 519, 519, 520, 520, 520, 520, 520, 520, - 521, 521, 521, 521, 522, 522, 523, 523, 523, 524, - 524, 524, 524, 524, 525, 525, 525, 526, 526, 527, - 527, 528, 528, 529, 529, 529, 529, 530, 531, 531, - 532, 532, 532, 533, 533, 534, 534, 535, 536, 536, - 536, 536, 536, 537, 537, 538, 538, 538, 539, 539, - 540, 541, 541, 542, 542, 542, 543, 543, 543, 544, - 544, 545, 545, 546, 546, 547, 547, 548, 548, 549, - 549, 550, 550, 551, 551, 552, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 554, - 554, 555, 555, 556, 556, 557, 557, 557, 558, 558, - 558, 558, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 559, 560, 560, 561, 561, - 561, 562, 562, 562, 563, 563, 564, 564, 564, 564, - 564, 564, 565, 565, 566, 567, 567, 567, 567, 567, - 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 570, 571, 572, 572, 572, 572, 572, - 573, 573, 574, 574, 574, 574, 575, 576, 576, 577, - 577, 578, 578, 578, 578, 578, 578, 578, 578, 579, - 579, 580, 581, 581, 581, 581, 582, 582, 582, 582, - 583, 584, 584, 584, 585, 586, 586, 586, 586, 586, - 586, 587, 588, 588, 589, 589, 590, 591, 591, 591, - 592, 592, 593, 593, 594, 594, 595, 596, 596, 597, - 597, 598, 599, 599, 599, 599, 600, 600, 601, 601, - 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, - 604, 604, 604, 605, 606, 606, 606, 606, 606, 606, - 606, 606, 607, 607, 608, 608, 609, 609, 610, 610, - 610, 610, 610, 610, 610, 611, 611, 612, 612, 613, - 614, 614, 615, 615, 615, 616, 616, 617, 618, 618, - 619, 619, 620, 620, 621, 621, 622, 622, 623, 623, - 624, 624, 624, 625, 626, 626, 626, 626, 627, 627, - 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, - 629, 630, 630, 630, 630, 631, 631, 631, 631, 631, - 632, 632, 632, 632, 632, 633, 633, 634, 634, 635, - 635, 636, 637, 637, 637, 637, 638, 638, 638, 638, - 639, 639, 639, 639, 640, 640, 641, 641, 641, 641, - 641, 641, 641, 642, 642, 643, 643, 644, 644, 645, - 645, 646, 646, 647, 647, 648, 648, 649, 649, 650, - 650, 651, 651, 651, 651, 651, 652, 653, 653, 654, - 654, 655, 655, 656, 656, 656, 656, 656, 656, 656, - 656, 656, 656, 656, 656, 656, 656, 657, 658, 658, - 658, 659, 659, 660, 661, 661, 662, 662, 663, 663, - 664, 665, 665, 666, 666, 666, 666, 667, 668, 668, - 669, 669, 670, 670, 670, 670, 670, 670, 670, 670, - 671, 671, 672, 672, 672, 672, 672, 672, 672, 673, - 673, 673, 674, 674, 675, 676, 676, 677, 677, 677, - 677, 677, 677, 677, 677, 677, 678, 678, 679, 679, - 679, 680, 680, 681, 681, 682, 682, 682, 683, 683, - 684, 685, 685, 686, 686, 687, 687, 687, 688, 688, - 688, 689, 689, 689, 689, 690, 690, 691, 691, 691, - 691, 692, 692, 693, 693, 693, 693, 693, 693, 694, - 694, 695, 695, 696, 696, 696, 696, 697, 698, 698, - 699, 699, 700, 700, 700, 700, 700, 701, 702, 702, - 702, 703, 703, 704, 704, 705, 705, 706, 706, 707, - 707, 708, 708, 708, 708, 708, 709, 710, 711, 712, - 713, 713, 714, 714, 715, 715, 716, 716, 717, 717, - 718, 719, 719, 719, 719, 720, 720, 721, 721, 721, - 722, 722, 723, 723, 724, 724, 725, 725, 725, 725, - 725, 725, 725, 726, 726, 726, 726, 726, 726, 727, - 727, 727, 727, 728, 728, 729, 729, 729, 729, 729, - 730, 730, 730, 730, 731, 731, 732, 732, 733, 733, - 733, 733, 734, 734, 735, 736, 736, 737, 737, 738, - 738, 739, 739, 740, 740, 741, 742, 742, 743, 743, - 744, 744, 745, 745, 745, 745, 745, 745, 745, 745, - 746, 746, 746, 747, 747, 747, 747, 747, 747, 747, - 748, 748, 748, 748, 749, 750, 750, 751, 751, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 752, 752, - 753, 753, 754, 754, 755, 756, 757, 757, 758, 758, - 759, 760, 761, 761, 761, 761, 761, 761, 762, 762, - 763, 763, 763, 763, 764, 765, 765, 765, 766, 766, - 767, 767, 768, 768, 769, 769, 770, 770, 771, 771, - 772, 772, 773, 773, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 778, 778, 778, 778, 778, 778, - 778, 779, 779, 780, 780, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, - 781, 781, 781, 781, 782, 782, 783, 783, 784, 784, - 785, 785, 786, 787, 787, 787, 788, 789, 789, 790, - 790, 791, 791, 791, 792, 792, 793, 793, 793, 793, - 793, 794, 794, 795, 795, 796, 797, 797, 798, 798, - 798, 799, 799, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 800, 800, 801, 801, 802, 802, 803, - 803, 803, 803, 803, 803, 803, 803, 804, 804, 805, - 805, 806, 806, 807, 807, 808, 808, 808, 809, 809, - 810, 810, 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 812, 812, 813, 814, 814, 815, 815, 815, - 815, 815, 815, 816, 817, 818, 818, 818, 819, 819, - 820, 821, 821, 822, 823, 823, 824, 824, 825, 825, - 826, 826, 826, 827, 827, 828, 828, 829, 829, 830, - 830, 831, 831, 832, 832, 833, 833, 833, 833, 833, - 834, 834, 835, 835, 836, 837, 837, 838, 838, 838, - 839, 839, 840, 840, 841, 841, 842, 843, 844, 844, - 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, - 845, 845, 845, 845, 846, 847, 848, 848, 848, 849, - 849, 850, 850, 850, 851, 851, 851, 852, 852, 852, - 853, 853, 854, 854, 855, 855, 856, 857, 857, 857, - 857, 858, 858, 859, 860, 860, 860, 861, 861, 862, - 862, 863, 863, 864, 864, 865, 865, 865, 865, 866, - 866, 866, 866, 866, 866, 866, 866, 867, 867, 867, - 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, - 867, 867, 868, 868, 868, 868, 868, 868, 868, 869, - 869, 870, 870, 870, 871, 871, 871, 872, 872, 873, - 874, 874, 875, 875, 876, 876, 876, 877, 877, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 878, 878, - 878, 878, 878, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 880, 880, 880, 880, 880, + 0, 503, 504, 505, 505, 506, 506, 506, 506, 506, + 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, + 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, + 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, + 507, 507, 507, 507, 507, 507, 507, 507, 508, 508, + 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, + 508, 508, 508, 509, 509, 509, 509, 509, 509, 509, + 510, 510, 511, 511, 511, 512, 512, 512, 513, 513, + 514, 514, 514, 514, 515, 515, 516, 516, 516, 517, + 517, 517, 517, 517, 518, 518, 518, 519, 519, 520, + 520, 521, 521, 522, 522, 522, 522, 523, 524, 524, + 525, 525, 526, 526, 527, 527, 527, 527, 527, 527, + 527, 527, 528, 528, 529, 529, 529, 529, 529, 529, + 529, 530, 530, 530, 531, 531, 532, 533, 533, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 535, 535, + 536, 536, 536, 537, 537, 538, 538, 539, 539, 539, + 540, 540, 541, 542, 542, 543, 543, 544, 544, 544, + 545, 545, 545, 546, 546, 546, 546, 547, 547, 548, + 548, 548, 548, 549, 549, 550, 550, 550, 550, 550, + 550, 551, 551, 552, 552, 553, 553, 553, 553, 554, + 555, 555, 556, 556, 557, 557, 557, 557, 557, 558, + 559, 559, 559, 560, 560, 561, 561, 562, 562, 563, + 563, 564, 564, 565, 565, 565, 565, 565, 566, 567, + 568, 569, 570, 570, 571, 571, 572, 572, 573, 573, + 574, 574, 575, 575, 576, 577, 577, 577, 577, 578, + 578, 579, 579, 579, 580, 580, 581, 581, 582, 582, + 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, + 584, 584, 584, 585, 585, 585, 585, 586, 586, 587, + 587, 587, 587, 587, 588, 588, 588, 588, 589, 589, + 590, 590, 591, 591, 591, 591, 592, 592, 593, 594, + 594, 595, 595, 596, 596, 597, 597, 598, 598, 599, + 600, 600, 601, 601, 602, 602, 603, 603, 603, 603, + 603, 603, 603, 603, 604, 604, 604, 605, 605, 605, + 605, 605, 605, 605, 606, 606, 606, 606, 607, 608, + 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, + 609, 609, 610, 610, 611, 611, 612, 612, 613, 614, + 615, 615, 616, 616, 617, 618, 619, 619, 619, 619, + 619, 619, 620, 620, 621, 621, 621, 621, 622, 623, + 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, + 628, 628, 629, 629, 630, 630, 631, 631, 632, 632, + 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, + 632, 632, 632, 632, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, + 635, 635, 635, 635, 635, 635, 635, 635, 636, 636, + 636, 636, 636, 636, 636, 637, 637, 638, 638, 639, + 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, + 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, + 639, 639, 639, 639, 639, 639, 639, 639, 640, 640, + 641, 641, 642, 642, 643, 643, 644, 645, 645, 645, + 646, 647, 647, 648, 648, 649, 649, 649, 650, 650, + 651, 651, 651, 651, 651, 652, 652, 653, 653, 654, + 655, 655, 656, 656, 656, 657, 657, 658, 658, 658, + 658, 658, 658, 658, 658, 658, 658, 658, 658, 659, + 659, 660, 660, 661, 661, 661, 661, 661, 661, 661, + 661, 662, 662, 663, 663, 664, 664, 665, 665, 666, + 666, 666, 667, 667, 668, 668, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 670, 670, 671, 672, + 672, 673, 673, 673, 673, 673, 673, 674, 675, 676, + 676, 676, 677, 677, 678, 679, 679, 680, 681, 681, + 682, 682, 683, 683, 684, 684, 684, 685, 685, 686, + 686, 687, 687, 688, 688, 689, 689, 690, 690, 691, + 691, 691, 691, 691, 692, 692, 693, 693, 694, 695, + 695, 696, 696, 696, 697, 697, 698, 698, 699, 699, + 700, 701, 702, 702, 703, 703, 703, 703, 703, 703, + 703, 703, 703, 703, 703, 703, 703, 703, 704, 705, + 706, 706, 706, 707, 707, 708, 708, 708, 709, 709, + 709, 710, 710, 710, 711, 711, 712, 712, 713, 713, + 714, 715, 715, 715, 715, 716, 716, 717, 717, 717, + 717, 717, 717, 718, 719, 720, 720, 721, 722, 722, + 723, 723, 724, 724, 725, 725, 726, 726, 727, 727, + 727, 727, 727, 727, 728, 728, 728, 729, 730, 730, + 730, 730, 730, 730, 730, 730, 731, 731, 732, 732, + 733, 733, 733, 733, 734, 734, 735, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 735, 735, 735, 735, 736, 736, 737, 737, 737, + 737, 738, 738, 739, 740, 740, 740, 741, 742, 742, + 743, 743, 744, 744, 744, 744, 744, 745, 745, 745, + 745, 745, 746, 746, 747, 747, 748, 748, 749, 749, + 749, 750, 751, 751, 752, 752, 753, 753, 754, 754, + 755, 755, 756, 756, 757, 757, 758, 758, 759, 759, + 760, 760, 761, 761, 761, 761, 761, 762, 763, 763, + 764, 764, 765, 765, 766, 766, 766, 766, 766, 766, + 766, 766, 766, 766, 766, 766, 766, 766, 767, 768, + 768, 768, 769, 769, 770, 770, 770, 770, 771, 771, + 771, 771, 772, 772, 772, 772, 773, 773, 774, 774, + 774, 774, 774, 774, 774, 775, 775, 776, 777, 777, + 778, 779, 779, 779, 780, 780, 781, 781, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, + 782, 783, 783, 784, 784, 785, 785, 785, 786, 787, + 787, 787, 787, 788, 788, 788, 788, 789, 789, 790, + 790, 791, 791, 791, 791, 792, 792, 793, 793, 794, + 794, 794, 794, 794, 794, 794, 795, 795, 796, 796, + 797, 798, 798, 799, 799, 799, 799, 800, 800, 801, + 801, 802, 802, 802, 803, 803, 803, 803, 804, 804, + 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, + 804, 804, 805, 805, 806, 806, 806, 807, 807, 808, + 808, 808, 809, 809, 810, 811, 811, 811, 811, 811, + 812, 812, 813, 813, 813, 814, 814, 815, 816, 816, + 817, 817, 817, 818, 818, 818, 819, 819, 820, 820, + 821, 821, 822, 822, 823, 823, 824, 824, 825, 825, + 826, 826, 827, 828, 828, 828, 829, 829, 830, 831, + 831, 832, 832, 832, 833, 833, 833, 834, 834, 835, + 835, 835, 835, 835, 835, 836, 836, 837, 838, 838, + 838, 838, 838, 839, 839, 839, 839, 840, 840, 840, + 840, 840, 840, 840, 840, 840, 841, 842, 843, 843, + 843, 843, 843, 844, 844, 845, 845, 845, 845, 846, + 847, 847, 848, 848, 849, 849, 849, 849, 849, 849, + 849, 849, 850, 850, 851, 852, 852, 852, 852, 853, + 853, 853, 853, 854, 855, 855, 855, 856, 857, 857, + 857, 857, 857, 857, 858, 859, 859, 860, 860, 861, + 862, 862, 862, 863, 863, 864, 864, 865, 865, 866, + 867, 867, 868, 868, 869, 870, 870, 870, 870, 871, + 871, 872, 872, 872, 873, 873, 873, 873, 873, 873, + 874, 874, 875, 875, 875, 875, 876, 877, 877, 877, + 877, 877, 877, 877, 877, 878, 878, 879, 879, 879, + 879, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, - 880, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, - 881, 881, 881, 881, 881, 881, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 883, 883, + 882, 882, 882, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, - 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, - 883, 883, 883, 883, 883, 884, 884, 884, 884, 884, - 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, + 883, 883, 883, 883, 883, 883, 883, 883, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, - 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, - 884, 884 + 885, 885, 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, + 886, 886, 886, 886, 886 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -2963,128 +2966,128 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 6, 4, 6, 4, 6, 4, 6, 1, 2, - 3, 2, 1, 3, 2, 3, 1, 3, 2, 5, - 3, 6, 4, 6, 6, 6, 5, 5, 6, 9, - 4, 5, 7, 6, 4, 8, 4, 2, 4, 3, - 6, 4, 2, 2, 2, 2, 1, 2, 0, 1, - 2, 2, 2, 1, 3, 4, 2, 1, 0, 4, - 3, 2, 4, 5, 6, 8, 6, 8, 6, 8, + 6, 4, 6, 4, 6, 8, 4, 6, 1, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 3, + 3, 3, 3, 2, 2, 1, 3, 1, 1, 1, + 1, 3, 1, 1, 0, 1, 1, 1, 1, 3, 2, 4, 3, 5, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 2, 2, 3, 1, 1, 2, 4, 7, 1, 4, - 4, 7, 2, 1, 3, 4, 3, 0, 1, 0, - 2, 3, 5, 8, 5, 0, 5, 5, 7, 2, - 0, 1, 1, 1, 3, 2, 0, 1, 0, 1, - 3, 1, 3, 1, 3, 2, 6, 6, 8, 6, - 8, 6, 8, 6, 8, 8, 10, 8, 10, 1, - 0, 4, 6, 1, 2, 1, 1, 0, 1, 2, - 2, 1, 2, 2, 1, 2, 3, 2, 2, 2, - 2, 3, 3, 3, 1, 3, 1, 0, 1, 2, - 2, 9, 12, 11, 0, 2, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 2, 1, 1, 2, 2, - 3, 1, 1, 2, 2, 1, 2, 3, 5, 3, - 2, 5, 5, 2, 3, 1, 1, 2, 2, 0, - 4, 0, 3, 4, 4, 0, 3, 2, 0, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 1, 2, 2, 2, 2, 2, 2, 0, - 3, 3, 3, 0, 1, 2, 1, 2, 2, 2, - 2, 4, 1, 3, 1, 3, 1, 1, 1, 1, - 3, 1, 2, 0, 1, 0, 1, 3, 0, 2, - 0, 3, 3, 1, 5, 3, 1, 3, 1, 4, - 5, 5, 6, 3, 7, 4, 11, 1, 3, 2, - 2, 2, 0, 3, 1, 1, 2, 2, 2, 2, - 1, 0, 1, 2, 5, 8, 1, 0, 2, 2, - 2, 2, 3, 4, 2, 1, 1, 1, 3, 2, - 1, 1, 1, 2, 3, 13, 16, 1, 2, 0, - 1, 0, 1, 0, 2, 0, 1, 0, 7, 10, - 2, 3, 0, 4, 2, 3, 2, 3, 2, 2, - 2, 2, 2, 2, 1, 1, 0, 9, 11, 12, - 14, 3, 4, 4, 0, 4, 5, 5, 4, 6, - 1, 1, 1, 1, 1, 1, 0, 1, 3, 1, - 0, 2, 2, 3, 3, 3, 1, 3, 3, 2, - 3, 3, 3, 3, 1, 1, 1, 1, 3, 5, - 1, 1, 1, 1, 3, 11, 9, 1, 1, 3, - 0, 1, 3, 1, 0, 1, 0, 1, 0, 1, - 3, 1, 1, 1, 3, 0, 2, 2, 0, 2, - 0, 1, 0, 1, 1, 1, 3, 3, 1, 1, - 3, 3, 3, 3, 4, 3, 2, 1, 1, 1, - 1, 1, 3, 6, 1, 1, 2, 3, 2, 1, - 5, 3, 0, 1, 1, 1, 1, 8, 1, 1, - 3, 3, 1, 2, 4, 4, 2, 3, 5, 5, - 1, 1, 10, 10, 1, 2, 4, 4, 4, 2, - 2, 3, 1, 3, 6, 2, 0, 3, 3, 4, - 4, 4, 4, 3, 2, 1, 1, 0, 1, 1, - 0, 1, 5, 1, 0, 2, 2, 0, 1, 0, - 3, 1, 3, 4, 3, 1, 1, 0, 2, 2, - 0, 2, 2, 1, 1, 1, 0, 2, 4, 5, - 4, 2, 3, 2, 2, 2, 2, 1, 2, 3, - 0, 1, 0, 5, 1, 4, 6, 2, 1, 0, - 4, 0, 1, 1, 2, 2, 2, 1, 1, 2, - 2, 1, 1, 1, 1, 1, 1, 3, 0, 1, - 3, 1, 1, 1, 1, 1, 2, 4, 4, 5, - 1, 1, 2, 0, 1, 3, 1, 0, 1, 2, - 3, 2, 4, 2, 3, 2, 0, 1, 2, 0, - 4, 5, 2, 0, 1, 3, 3, 3, 3, 3, - 3, 1, 4, 3, 4, 5, 4, 5, 4, 5, - 2, 4, 1, 1, 0, 1, 4, 5, 4, 0, - 2, 2, 2, 1, 1, 0, 4, 2, 1, 2, - 2, 4, 2, 6, 2, 1, 3, 4, 0, 2, - 0, 2, 0, 1, 3, 3, 2, 0, 2, 4, - 1, 1, 2, 3, 5, 6, 2, 3, 5, 5, - 3, 4, 0, 1, 1, 1, 1, 1, 2, 4, - 1, 1, 1, 1, 2, 3, 0, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 1, 3, 0, - 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, - 4, 1, 2, 2, 1, 3, 3, 2, 1, 0, - 5, 2, 5, 2, 1, 3, 3, 0, 1, 1, + 1, 1, 3, 3, 1, 2, 4, 4, 2, 3, + 5, 5, 1, 1, 11, 11, 1, 2, 4, 4, + 4, 2, 2, 3, 1, 3, 6, 2, 0, 3, + 3, 4, 4, 4, 4, 3, 2, 1, 1, 0, + 1, 1, 0, 1, 5, 1, 0, 2, 2, 0, + 1, 0, 3, 1, 3, 4, 3, 1, 1, 0, + 2, 2, 0, 2, 2, 1, 1, 1, 0, 2, + 4, 5, 4, 2, 3, 2, 2, 2, 2, 1, + 2, 3, 0, 1, 0, 5, 1, 4, 6, 2, + 1, 0, 4, 0, 1, 1, 2, 2, 2, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 3, + 0, 1, 3, 1, 1, 1, 1, 1, 2, 4, + 4, 5, 1, 1, 2, 0, 2, 0, 1, 3, + 1, 0, 1, 2, 3, 2, 4, 2, 3, 2, + 0, 1, 2, 0, 4, 5, 2, 0, 1, 3, + 3, 3, 3, 3, 3, 1, 4, 3, 4, 5, + 4, 5, 4, 5, 2, 4, 1, 1, 0, 1, + 4, 5, 4, 0, 2, 2, 2, 1, 1, 0, + 4, 2, 1, 2, 2, 4, 2, 6, 2, 1, + 3, 4, 0, 2, 0, 2, 0, 1, 3, 3, + 2, 0, 2, 4, 1, 1, 2, 3, 5, 6, + 2, 3, 5, 5, 3, 4, 0, 1, 1, 1, + 1, 1, 2, 4, 1, 1, 1, 1, 2, 3, + 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 1, 3, 0, 1, 1, 1, 1, 5, 2, + 1, 1, 1, 1, 4, 1, 2, 2, 1, 3, + 3, 2, 1, 0, 5, 2, 5, 2, 1, 3, + 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 0, 1, 3, 3, 5, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, + 3, 5, 4, 6, 3, 5, 4, 6, 4, 6, + 5, 7, 3, 2, 4, 3, 2, 1, 3, 3, + 3, 3, 3, 3, 4, 3, 4, 3, 4, 5, + 6, 6, 7, 6, 7, 6, 7, 3, 4, 4, + 6, 1, 4, 1, 3, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 5, 6, 6, 7, 1, 1, 2, 2, + 2, 4, 1, 2, 1, 2, 2, 4, 3, 6, + 7, 9, 7, 7, 4, 4, 1, 1, 1, 5, + 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, + 1, 1, 1, 1, 1, 6, 6, 4, 4, 4, + 4, 6, 5, 5, 5, 4, 6, 4, 5, 0, + 5, 0, 2, 0, 1, 3, 3, 2, 2, 0, + 6, 1, 0, 3, 0, 2, 2, 0, 1, 4, + 2, 2, 2, 2, 2, 4, 3, 1, 5, 3, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, - 1, 3, 3, 5, 2, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 3, 3, 2, 2, 3, 3, 5, 4, 6, - 3, 5, 4, 6, 4, 6, 5, 7, 3, 2, - 4, 3, 2, 1, 3, 3, 3, 3, 3, 3, - 4, 3, 4, 3, 4, 5, 6, 6, 7, 6, - 7, 6, 7, 3, 4, 4, 6, 1, 4, 1, - 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 5, 6, - 6, 7, 1, 1, 2, 2, 2, 4, 1, 2, - 1, 2, 2, 4, 3, 6, 7, 9, 7, 7, - 4, 4, 1, 1, 1, 5, 1, 1, 4, 1, - 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, - 1, 6, 6, 4, 4, 4, 4, 6, 5, 5, - 5, 4, 6, 4, 5, 0, 5, 0, 2, 0, - 1, 3, 3, 2, 2, 0, 6, 1, 0, 3, - 0, 2, 2, 0, 1, 4, 2, 2, 2, 2, - 2, 4, 3, 1, 5, 3, 1, 3, 1, 1, + 4, 1, 4, 1, 4, 1, 2, 1, 2, 1, + 2, 1, 3, 1, 3, 1, 0, 1, 3, 1, + 3, 3, 1, 3, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 3, 2, 3, + 0, 3, 3, 2, 2, 1, 0, 2, 2, 3, + 2, 1, 1, 3, 5, 1, 2, 4, 2, 0, + 1, 0, 1, 2, 2, 3, 5, 1, 0, 1, + 2, 0, 2, 1, 0, 1, 0, 1, 3, 3, + 2, 1, 3, 5, 4, 2, 1, 0, 3, 1, + 3, 4, 2, 0, 1, 3, 1, 2, 1, 3, + 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, + 7, 2, 5, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 1, 4, 1, - 4, 1, 2, 1, 2, 1, 2, 1, 3, 1, - 3, 1, 0, 1, 3, 1, 3, 3, 1, 3, - 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 3, 2, 3, 0, 3, 3, 2, - 2, 1, 0, 2, 2, 3, 2, 1, 1, 3, - 5, 1, 2, 4, 2, 0, 1, 0, 1, 2, - 2, 3, 5, 1, 0, 1, 2, 0, 2, 1, - 0, 1, 0, 1, 3, 3, 2, 1, 3, 5, - 4, 2, 1, 0, 3, 1, 3, 4, 2, 0, - 1, 3, 1, 2, 1, 3, 1, 1, 1, 2, - 1, 1, 2, 1, 1, 2, 7, 2, 5, 3, + 1, 1, 1, 1, 1, 2, 2, 3, 3, 0, + 1, 1, 1, 1, 1, 1, 1, 6, 8, 6, + 8, 6, 8, 4, 3, 13, 16, 1, 2, 0, + 1, 0, 1, 0, 2, 0, 1, 0, 2, 2, + 2, 2, 2, 2, 1, 1, 0, 8, 4, 6, + 4, 6, 4, 6, 4, 6, 1, 2, 3, 2, + 1, 3, 2, 3, 1, 3, 2, 5, 3, 6, + 4, 6, 6, 6, 5, 5, 6, 9, 4, 5, + 7, 6, 4, 8, 4, 2, 4, 3, 6, 4, + 2, 2, 2, 2, 1, 2, 0, 1, 2, 2, + 2, 1, 3, 4, 2, 1, 0, 6, 1, 1, + 2, 3, 4, 5, 5, 4, 6, 1, 1, 1, + 1, 1, 1, 0, 1, 3, 1, 0, 2, 4, + 5, 8, 1, 0, 1, 3, 11, 9, 1, 1, + 3, 0, 1, 3, 1, 0, 1, 0, 1, 0, + 1, 3, 1, 1, 1, 3, 0, 2, 2, 0, + 2, 0, 1, 0, 1, 1, 1, 3, 3, 1, + 1, 3, 3, 3, 3, 4, 3, 2, 1, 1, + 1, 1, 1, 3, 2, 3, 3, 3, 1, 3, + 3, 2, 3, 3, 3, 3, 1, 1, 1, 1, + 3, 5, 1, 1, 1, 1, 3, 2, 2, 1, + 7, 1, 2, 3, 2, 0, 2, 0, 6, 6, + 8, 6, 8, 6, 8, 6, 8, 8, 10, 8, + 10, 1, 0, 7, 10, 2, 3, 0, 4, 9, + 11, 12, 14, 3, 4, 4, 0, 4, 7, 2, + 0, 1, 1, 1, 1, 5, 8, 1, 0, 2, + 2, 2, 2, 3, 4, 2, 1, 1, 1, 3, + 5, 3, 0, 1, 1, 1, 1, 4, 6, 1, + 2, 1, 1, 0, 1, 2, 2, 1, 2, 2, + 1, 2, 3, 2, 2, 2, 2, 3, 3, 3, + 1, 3, 1, 0, 1, 2, 2, 2, 4, 2, + 2, 3, 1, 1, 7, 1, 4, 4, 7, 2, + 1, 3, 4, 3, 0, 1, 0, 2, 3, 5, + 8, 5, 0, 5, 5, 7, 2, 0, 1, 1, + 1, 3, 2, 0, 1, 0, 1, 3, 1, 3, + 1, 3, 2, 3, 9, 12, 3, 0, 2, 1, + 1, 1, 2, 3, 9, 12, 11, 0, 2, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 2, 1, + 1, 2, 2, 3, 1, 1, 2, 2, 1, 2, + 3, 5, 3, 2, 5, 5, 2, 3, 1, 1, + 2, 2, 0, 4, 0, 3, 4, 4, 0, 3, + 2, 0, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, + 2, 2, 0, 3, 3, 3, 0, 1, 2, 1, + 2, 2, 2, 2, 4, 1, 3, 1, 3, 1, + 1, 1, 1, 3, 1, 2, 0, 1, 0, 1, + 3, 0, 2, 0, 3, 3, 1, 5, 3, 1, + 3, 1, 4, 5, 5, 6, 3, 7, 4, 11, + 1, 3, 2, 2, 2, 0, 3, 1, 1, 2, + 2, 2, 2, 1, 0, 1, 2, 2, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 3, 3, 0, 1, 1, 1, 1, - 1, 1, 1, 7, 1, 2, 3, 2, 0, 2, - 0, 4, 7, 2, 0, 1, 1, 1, 1, 6, - 4, 6, 4, 6, 8, 4, 6, 1, 1, 1, - 1, 1, 2, 1, 2, 1, 1, 1, 3, 3, - 3, 3, 2, 2, 1, 3, 1, 1, 1, 1, - 3, 1, 1, 0, 1, 1, 1, 1, 3, 8, - 1, 0, 1, 3, 3, 9, 12, 3, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -3139,7 +3142,7 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1 + 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -3147,1596 +3150,1457 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 159, 416, 0, 132, 131, 416, 0, 519, 416, 492, - 361, 0, 376, 0, 416, 0, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 416, 574, 0, 375, 416, - 0, 0, 436, 0, 0, 0, 0, 0, 2, 4, - 7, 23, 24, 28, 5, 22, 115, 27, 8, 26, - 0, 30, 6, 17, 16, 37, 0, 35, 25, 12, - 18, 32, 38, 34, 9, 36, 11, 14, 10, 29, - 33, 31, 541, 528, 579, 540, 158, 544, 19, 15, - 20, 13, 21, 415, 414, 408, 0, 0, 0, 0, - 0, 409, 1146, 1239, 1240, 1241, 1242, 1243, 1244, 1245, - 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1595, - 1255, 1256, 1257, 1543, 1544, 1596, 1545, 1546, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1547, 1548, 1266, 1267, - 1268, 1269, 1270, 1549, 1597, 1271, 1272, 1273, 1274, 1275, - 1276, 1598, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, - 1285, 1599, 1286, 1287, 1288, 1600, 1289, 1290, 1291, 1292, - 1293, 1294, 1295, 1550, 1551, 1296, 1297, 1298, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1321, 1322, 1323, 1552, 1324, 1325, 1326, 1327, 1553, 1328, - 1329, 1330, 1554, 1331, 1332, 1333, 1601, 1602, 1334, 1335, - 1336, 1603, 1337, 1338, 1555, 1556, 1339, 1340, 1341, 1342, - 1343, 1344, 1345, 1346, 1604, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1356, 1357, 1605, 1557, 1358, 1359, - 1360, 1361, 1362, 1558, 1559, 1560, 1363, 1606, 1607, 1364, - 1608, 1365, 1366, 1367, 1368, 1369, 1370, 1609, 1371, 1610, - 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1561, 1380, - 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1562, 1612, 1563, - 1398, 1399, 1400, 1564, 1401, 1402, 1613, 1403, 1565, 1404, - 1566, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, - 1567, 1614, 1414, 1615, 1568, 1415, 1416, 1417, 1418, 1419, - 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1569, 1427, 1428, - 1570, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, - 1438, 1439, 1440, 1571, 1441, 1442, 1443, 1444, 1445, 1446, - 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, - 1457, 1458, 1459, 1616, 1460, 1461, 1462, 1572, 1463, 1464, - 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, - 1475, 1476, 1477, 1478, 1479, 1573, 1480, 1481, 1482, 1617, - 1483, 1484, 1574, 1485, 1486, 1487, 1488, 1489, 1490, 1491, - 1492, 1493, 1494, 1495, 1496, 1575, 1497, 1576, 1498, 1499, - 1500, 1501, 1619, 1502, 1503, 1504, 1505, 1506, 1577, 1578, - 1507, 1508, 1579, 1509, 1580, 1510, 1511, 1581, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1525, 1526, 1582, 1583, 1527, 1620, 1528, 1529, 1530, - 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1584, 1585, - 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1539, - 1540, 1541, 1542, 441, 0, 0, 1128, 1147, 1148, 1156, - 411, 491, 159, 0, 514, 0, 0, 515, 0, 0, - 355, 354, 0, 396, 360, 0, 0, 0, 1146, 406, - 1561, 1429, 1575, 404, 1126, 1147, 0, 1205, 1206, 0, - 1214, 0, 1199, 1203, 1200, 0, 1224, 1216, 1225, 1217, - 1198, 1218, 1207, 1197, 0, 1226, 0, 1201, 0, 0, - 0, 412, 1238, 361, 159, 0, 110, 115, 120, 123, - 121, 119, 122, 0, 518, 0, 0, 1145, 141, 143, - 144, 140, 101, 522, 381, 1577, 1507, 380, 382, 379, - 377, 413, 573, 571, 0, 1102, 1337, 1374, 1467, 1478, - 1577, 0, 442, 446, 410, 1582, 370, 369, 0, 1150, - 0, 545, 708, 1149, 1122, 435, 0, 440, 0, 1443, - 549, 552, 1165, 550, 541, 0, 1, 159, 114, 145, - 0, 0, 0, 374, 1577, 1507, 371, 368, 570, 570, - 0, 570, 0, 533, 541, 536, 540, 0, 1345, 0, - 0, 1345, 0, 1345, 0, 1345, 0, 0, 1094, 0, - 1095, 1129, 524, 0, 525, 523, 526, 328, 359, 358, - 357, 356, 361, 1345, 1184, 1160, 0, 0, 0, 0, - 0, 391, 0, 407, 405, 1212, 1213, 0, 1204, 1202, - 0, 1157, 1621, 760, 1622, 789, 767, 789, 789, 1623, - 1624, 1625, 1626, 756, 756, 1311, 769, 1627, 1628, 1629, - 1345, 1630, 1631, 757, 758, 794, 1632, 1633, 1634, 1635, - 1636, 0, 0, 1637, 789, 1638, 756, 1639, 1640, 761, - 1641, 730, 0, 1642, 759, 731, 1643, 797, 797, 1644, - 784, 1645, 0, 1227, 742, 743, 744, 745, 770, 771, - 746, 776, 777, 781, 747, 829, 756, 1223, 1158, 1159, - 1345, 1219, 1223, 1345, 1223, 1124, 1345, 0, 0, 1234, - 0, 112, 124, 1646, 1647, 1648, 1649, 1651, 1650, 1652, - 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1663, 1661, - 1662, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, - 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, - 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, - 1693, 1694, 1695, 1696, 1697, 138, 0, 139, 129, 118, - 125, 126, 159, 490, 142, 100, 0, 0, 0, 0, - 383, 0, 0, 0, 1131, 1133, 1134, 1025, 1144, 1097, - 0, 1544, 1545, 1546, 1087, 0, 1547, 1548, 1549, 1597, - 959, 946, 955, 960, 947, 949, 956, 1550, 1551, 897, - 1552, 1553, 1142, 1554, 1555, 1556, 1558, 1559, 1560, 951, - 953, 1562, 1563, 0, 1143, 1565, 1566, 1410, 1568, 1569, - 1571, 1572, 957, 1574, 1576, 1577, 1578, 1579, 1580, 1141, - 1581, 958, 1583, 0, 0, 0, 1113, 1042, 0, 0, - 0, 1097, 930, 0, 0, 750, 751, 772, 773, 752, - 778, 779, 753, 0, 1107, 830, 975, 1097, 942, 1003, - 873, 0, 928, 922, 556, 1103, 0, 923, 1130, 1097, - 1088, 556, 1101, 445, 443, 449, 444, 0, 0, 0, - 0, 0, 710, 709, 1123, 434, 432, 433, 431, 430, - 437, 0, 439, 115, 1039, 0, 1088, 551, 0, 0, - 0, 531, 530, 3, 1165, 0, 0, 1174, 0, 372, - 0, 568, 569, 0, 0, 0, 0, 0, 0, 0, - 0, 657, 593, 594, 596, 654, 658, 666, 0, 537, - 0, 0, 0, 200, 200, 0, 0, 0, 0, 0, - 93, 42, 86, 0, 0, 0, 0, 214, 227, 0, - 0, 0, 0, 0, 224, 0, 0, 207, 44, 201, - 203, 0, 200, 0, 40, 0, 0, 0, 46, 1146, - 0, 1595, 1596, 1597, 1598, 1599, 960, 0, 1601, 1602, - 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1561, 1612, - 1613, 1614, 1615, 1616, 1617, 1575, 1619, 1581, 0, 1620, - 0, 934, 1045, 579, 1043, 1166, 0, 1147, 1153, 1093, - 0, 1167, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, - 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, - 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, - 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, - 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, - 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, - 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, - 1793, 1794, 1795, 1796, 1685, 1797, 1798, 1799, 1800, 1801, - 1090, 1127, 1169, 1168, 1170, 1096, 0, 0, 488, 0, - 0, 1181, 0, 1161, 0, 0, 1345, 367, 1345, 0, - 328, 328, 390, 393, 0, 0, 1215, 1211, 1209, 1208, - 1210, 788, 775, 783, 782, 0, 765, 764, 763, 0, - 762, 0, 0, 789, 789, 787, 766, 742, 0, 0, - 0, 793, 0, 791, 0, 736, 732, 0, 802, 803, - 804, 805, 812, 813, 810, 811, 806, 807, 800, 801, - 808, 809, 798, 799, 0, 814, 815, 816, 817, 818, - 819, 820, 821, 748, 754, 1221, 1222, 0, 1195, 0, - 0, 1190, 0, 0, 1192, 0, 0, 0, 0, 159, - 0, 208, 134, 135, 133, 0, 0, 137, 127, 136, - 116, 117, 211, 228, 128, 111, 0, 99, 479, 454, - 455, 463, 102, 0, 1048, 0, 159, 384, 378, 0, - 926, 1042, 1086, 0, 0, 0, 0, 0, 0, 932, - 1051, 0, 0, 853, 0, 0, 0, 1066, 0, 1072, - 0, 0, 0, 854, 834, 835, 0, 1112, 1119, 1041, - 0, 930, 1039, 0, 1006, 0, 1149, 0, 924, 925, - 931, 0, 1137, 0, 829, 829, 1106, 1025, 0, 1022, - 1023, 1024, 0, 0, 0, 1100, 0, 1033, 1035, 0, - 0, 869, 1031, 0, 872, 0, 0, 0, 0, 1019, - 1020, 1021, 1013, 1014, 1015, 1016, 1017, 1018, 1029, 1012, - 850, 0, 0, 977, 929, 0, 0, 849, 0, 0, - 0, 673, 0, 1135, 1132, 0, 1089, 673, 457, 461, - 462, 460, 448, 0, 456, 447, 452, 450, 453, 451, - 0, 428, 0, 425, 670, 0, 553, 0, 0, 146, - 1180, 0, 153, 0, 1175, 0, 373, 548, 547, 580, - 581, 587, 546, 635, 636, 0, 0, 0, 0, 663, - 661, 1131, 1144, 623, 597, 622, 0, 0, 601, 0, - 627, 830, 656, 535, 591, 592, 595, 534, 0, 659, - 0, 669, 657, 596, 0, 0, 0, 0, 0, 0, - 1345, 0, 0, 77, 58, 280, 0, 199, 0, 0, - 0, 0, 0, 0, 0, 85, 82, 83, 84, 0, - 0, 0, 0, 212, 213, 226, 0, 217, 218, 215, - 219, 220, 0, 0, 205, 206, 0, 0, 0, 0, - 204, 0, 0, 0, 0, 0, 0, 0, 0, 579, - 579, 579, 940, 0, 577, 578, 0, 0, 1091, 1094, - 478, 336, 0, 326, 0, 0, 0, 0, 0, 0, - 361, 1185, 1187, 1186, 1188, 1183, 1162, 0, 0, 0, - 0, 366, 364, 0, 0, 325, 299, 395, 1345, 392, - 0, 316, 516, 0, 0, 0, 0, 0, 1223, 0, - 786, 785, 737, 733, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1228, 1223, - 1220, 1223, 1125, 0, 1223, 1237, 1345, 0, 328, 113, - 130, 209, 229, 210, 230, 511, 0, 485, 493, 498, - 476, 0, 476, 0, 495, 499, 476, 494, 476, 489, - 0, 103, 0, 521, 0, 520, 0, 1098, 0, 0, - 1085, 1081, 0, 0, 0, 0, 0, 1052, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 0, 0, 1061, 0, - 0, 0, 1011, 1022, 1023, 1024, 1019, 1020, 1021, 1013, - 1014, 1015, 1016, 1017, 1018, 1037, 0, 0, 0, 0, - 0, 0, 0, 0, 899, 0, 0, 922, 1002, 0, - 1039, 1071, 0, 0, 0, 0, 0, 0, 1039, 1077, - 0, 0, 0, 1111, 0, 1108, 875, 1097, 0, 0, - 874, 0, 0, 0, 1139, 1140, 831, 845, 846, 847, - 851, 1172, 1171, 1105, 0, 1099, 0, 0, 832, 855, - 860, 0, 1078, 893, 0, 881, 0, 868, 0, 879, - 883, 856, 871, 0, 852, 0, 1100, 1034, 1036, 0, - 1032, 0, 842, 843, 844, 836, 837, 838, 839, 840, - 841, 848, 1010, 1008, 1009, 0, 0, 0, 985, 876, - 0, 0, 878, 877, 1337, 1374, 0, 567, 567, 567, - 555, 565, 1104, 0, 722, 579, 1113, 722, 0, 829, - 711, 1165, 438, 427, 426, 1040, 1164, 159, 0, 1178, - 0, 0, 0, 165, 148, 0, 1176, 0, 181, 673, - 0, 1097, 0, 585, 586, 0, 590, 1572, 1463, 0, - 0, 0, 0, 628, 664, 0, 655, 625, 626, 0, - 624, 1131, 629, 1130, 630, 633, 634, 602, 665, 1120, - 667, 0, 660, 539, 538, 671, 0, 43, 0, 1345, - 60, 0, 0, 0, 0, 0, 0, 234, 271, 234, - 98, 1345, 1223, 1345, 1223, 1243, 1312, 1479, 0, 56, - 89, 0, 304, 193, 0, 289, 333, 79, 94, 186, - 0, 0, 45, 202, 216, 221, 189, 225, 222, 106, - 223, 200, 0, 41, 0, 187, 0, 104, 0, 0, - 47, 191, 108, 577, 577, 577, 0, 1044, 0, 0, - 0, 1046, 1047, 1093, 0, 477, 0, 327, 0, 487, - 467, 468, 478, 0, 0, 328, 1184, 0, 1163, 1231, - 0, 0, 0, 0, 402, 0, 319, 317, 347, 0, - 324, 318, 326, 0, 0, 275, 0, 0, 0, 0, - 517, 513, 0, 755, 768, 1196, 742, 0, 796, 795, - 797, 797, 742, 0, 728, 0, 740, 0, 780, 749, - 822, 823, 824, 825, 826, 827, 828, 1189, 1191, 0, - 1193, 0, 0, 480, 0, 483, 0, 481, 482, 486, - 475, 0, 506, 0, 0, 0, 0, 0, 0, 464, - 1049, 572, 898, 0, 0, 1082, 0, 0, 973, 0, - 948, 950, 963, 0, 952, 954, 0, 1026, 0, 0, - 0, 964, 901, 902, 0, 0, 0, 0, 0, 0, + 1066, 786, 0, 102, 101, 786, 0, 949, 786, 903, + 1234, 0, 1007, 0, 786, 0, 1066, 0, 0, 0, + 0, 0, 0, 0, 0, 786, 156, 0, 1006, 786, + 0, 0, 863, 0, 0, 0, 0, 0, 2, 4, + 20, 22, 85, 31, 123, 110, 161, 122, 1065, 126, + 5, 23, 24, 25, 32, 33, 7, 14, 34, 28, + 13, 11, 36, 9, 10, 19, 30, 12, 38, 15, + 16, 37, 0, 29, 6, 8, 27, 26, 0, 21, + 35, 17, 18, 785, 784, 778, 0, 0, 0, 0, + 0, 779, 730, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1597, + 1257, 1258, 1259, 1545, 1546, 1598, 1547, 1548, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1549, 1550, 1268, 1269, + 1270, 1271, 1272, 1551, 1599, 1273, 1274, 1275, 1276, 1277, + 1278, 1600, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, + 1287, 1601, 1288, 1289, 1290, 1602, 1291, 1292, 1293, 1294, + 1295, 1296, 1297, 1552, 1553, 1298, 1299, 1300, 1301, 1302, + 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, + 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, + 1323, 1324, 1325, 1554, 1326, 1327, 1328, 1329, 1555, 1330, + 1331, 1332, 1556, 1333, 1334, 1335, 1603, 1604, 1336, 1337, + 1338, 1605, 1339, 1340, 1557, 1558, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1606, 1349, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1359, 1607, 1559, 1360, 1361, + 1362, 1363, 1364, 1560, 1561, 1562, 1365, 1608, 1609, 1366, + 1610, 1367, 1368, 1369, 1370, 1371, 1372, 1611, 1373, 1612, + 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1563, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1564, 1614, 1565, + 1400, 1401, 1402, 1566, 1403, 1404, 1615, 1405, 1567, 1406, + 1568, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1569, 1616, 1416, 1617, 1570, 1417, 1418, 1419, 1420, 1421, + 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1571, 1429, 1430, + 1572, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, + 1440, 1441, 1442, 1573, 1443, 1444, 1445, 1446, 1447, 1448, + 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, + 1459, 1460, 1461, 1618, 1462, 1463, 1464, 1574, 1465, 1466, + 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, + 1477, 1478, 1479, 1480, 1481, 1575, 1482, 1483, 1484, 1619, + 1485, 1486, 1576, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1577, 1499, 1578, 1500, 1501, + 1502, 1503, 1621, 1504, 1505, 1506, 1507, 1508, 1579, 1580, + 1509, 1510, 1581, 1511, 1582, 1512, 1513, 1583, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, + 1526, 1527, 1528, 1584, 1585, 1529, 1622, 1530, 1531, 1532, + 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1586, 1587, + 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1541, + 1542, 1543, 1544, 947, 0, 0, 712, 731, 732, 740, + 781, 902, 1066, 0, 848, 0, 0, 849, 0, 0, + 1228, 1227, 0, 776, 1233, 0, 0, 0, 730, 1239, + 1563, 1431, 1577, 1237, 710, 731, 0, 56, 57, 0, + 65, 0, 50, 54, 51, 0, 75, 67, 76, 68, + 49, 69, 58, 48, 0, 77, 0, 52, 0, 0, + 0, 782, 1097, 1234, 1066, 0, 80, 85, 89, 91, + 92, 93, 90, 0, 948, 0, 0, 729, 1052, 1053, + 1050, 1049, 868, 1012, 1100, 1579, 1509, 1008, 1099, 1101, + 1098, 783, 155, 153, 0, 686, 1339, 1376, 1469, 1480, + 1579, 924, 928, 0, 780, 1584, 1000, 0, 1001, 734, + 0, 127, 292, 733, 706, 862, 0, 867, 0, 1445, + 131, 134, 749, 132, 123, 0, 1, 1066, 84, 1047, + 152, 152, 0, 152, 0, 115, 123, 118, 122, 0, + 1005, 1579, 1509, 999, 1002, 0, 0, 0, 1347, 0, + 0, 1347, 0, 1347, 0, 1347, 0, 0, 678, 0, + 679, 713, 1013, 1015, 1016, 0, 1014, 1201, 1232, 1231, + 1230, 1229, 1234, 1347, 990, 744, 0, 771, 0, 0, + 0, 0, 0, 1240, 1238, 63, 64, 0, 55, 53, + 0, 741, 1623, 344, 1624, 373, 351, 373, 373, 1625, + 1626, 1627, 1628, 340, 340, 1313, 353, 1629, 1630, 1631, + 1347, 1632, 1633, 341, 342, 378, 1634, 1635, 1636, 1637, + 1638, 0, 0, 1639, 373, 1640, 340, 1641, 1642, 345, + 1643, 314, 0, 1644, 343, 315, 1645, 381, 381, 1646, + 368, 1647, 74, 0, 78, 326, 327, 328, 329, 354, + 355, 330, 360, 361, 365, 331, 413, 340, 742, 743, + 1347, 74, 70, 1347, 74, 708, 1347, 0, 0, 1093, + 0, 82, 94, 1648, 1649, 1650, 1651, 1653, 1652, 1654, + 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1665, 1663, + 1664, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, + 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, + 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, + 1695, 1696, 1697, 1698, 1699, 108, 0, 109, 99, 88, + 95, 96, 1066, 901, 1051, 764, 0, 0, 0, 0, + 1102, 0, 0, 0, 715, 717, 718, 609, 728, 681, + 0, 1546, 1547, 1548, 671, 0, 1549, 1550, 1551, 1599, + 543, 530, 539, 544, 531, 533, 540, 1552, 1553, 481, + 1554, 1555, 726, 1556, 1557, 1558, 1560, 1561, 1562, 535, + 537, 1564, 1565, 0, 727, 1567, 1568, 1412, 1570, 1571, + 1573, 1574, 541, 1576, 1578, 1579, 1580, 1581, 1582, 725, + 1583, 542, 1585, 0, 0, 0, 697, 626, 0, 0, + 0, 681, 514, 0, 0, 334, 335, 356, 357, 336, + 362, 363, 337, 0, 691, 414, 559, 681, 526, 587, + 457, 0, 512, 506, 138, 687, 0, 507, 714, 681, + 672, 138, 685, 927, 925, 931, 926, 0, 0, 0, + 0, 0, 294, 293, 707, 861, 859, 860, 858, 857, + 864, 0, 866, 85, 623, 0, 672, 133, 0, 0, + 0, 113, 112, 3, 749, 150, 151, 0, 0, 0, + 0, 0, 0, 0, 0, 241, 175, 176, 178, 238, + 242, 250, 0, 119, 0, 1003, 0, 0, 0, 951, + 0, 0, 0, 972, 972, 0, 0, 0, 0, 0, + 841, 790, 834, 0, 0, 0, 0, 1030, 1043, 0, + 0, 0, 0, 0, 1040, 0, 0, 1023, 792, 1017, + 1019, 0, 972, 0, 788, 0, 0, 0, 794, 730, + 0, 1597, 1598, 1599, 1600, 1601, 544, 0, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1563, 1614, + 1615, 1616, 1617, 1618, 1619, 1577, 1621, 1583, 0, 1622, + 0, 518, 629, 161, 627, 750, 0, 731, 737, 677, + 0, 751, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, + 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, + 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, + 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, + 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, + 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, + 1795, 1796, 1797, 1798, 1799, 1687, 1800, 1801, 1802, 1803, + 1804, 674, 711, 753, 752, 754, 680, 0, 0, 899, + 0, 0, 987, 0, 745, 0, 770, 773, 0, 0, + 0, 1347, 998, 1347, 1201, 0, 1201, 66, 62, 60, + 59, 61, 372, 359, 367, 366, 0, 349, 348, 347, + 0, 346, 0, 0, 373, 373, 371, 350, 326, 0, + 0, 0, 377, 0, 375, 72, 73, 0, 46, 0, + 320, 316, 0, 386, 387, 388, 389, 396, 397, 394, + 395, 390, 391, 384, 385, 392, 393, 382, 383, 0, + 398, 399, 400, 401, 402, 403, 404, 405, 332, 338, + 0, 0, 41, 0, 0, 43, 0, 0, 0, 0, + 1066, 0, 1024, 104, 105, 103, 0, 0, 107, 97, + 106, 86, 1044, 98, 87, 1027, 81, 0, 763, 890, + 936, 945, 869, 937, 0, 632, 0, 1066, 1103, 1009, + 0, 510, 626, 670, 0, 0, 0, 0, 0, 0, + 516, 635, 0, 0, 437, 0, 0, 0, 650, 0, + 656, 0, 0, 0, 438, 418, 419, 0, 696, 703, + 625, 0, 514, 623, 0, 590, 0, 733, 0, 508, + 509, 515, 0, 721, 0, 413, 413, 690, 609, 0, + 606, 607, 608, 0, 0, 0, 684, 0, 617, 619, + 0, 0, 453, 615, 0, 456, 0, 0, 0, 0, + 603, 604, 605, 597, 598, 599, 600, 601, 602, 613, + 596, 434, 0, 0, 561, 513, 0, 0, 433, 0, + 0, 0, 257, 0, 719, 716, 0, 673, 257, 939, + 943, 944, 0, 938, 930, 942, 929, 934, 932, 935, + 933, 0, 855, 0, 852, 254, 0, 135, 0, 0, + 1048, 130, 129, 162, 163, 169, 128, 217, 218, 0, + 0, 0, 0, 247, 245, 715, 728, 205, 179, 204, + 0, 0, 183, 0, 209, 414, 240, 117, 173, 174, + 177, 116, 0, 243, 0, 253, 241, 178, 0, 1004, + 957, 1060, 0, 0, 952, 0, 0, 0, 0, 0, + 0, 1347, 0, 0, 0, 825, 806, 1153, 971, 0, + 0, 0, 0, 0, 0, 0, 833, 830, 831, 832, + 0, 0, 0, 0, 1028, 1029, 1042, 0, 1033, 1034, + 1031, 1035, 1036, 0, 0, 1021, 1022, 0, 0, 0, + 0, 1020, 0, 0, 0, 0, 0, 0, 0, 0, + 161, 161, 161, 524, 0, 159, 160, 0, 0, 675, + 678, 889, 1199, 1209, 0, 0, 0, 0, 0, 0, + 0, 1234, 992, 994, 989, 993, 991, 746, 0, 0, + 1347, 1189, 0, 772, 850, 0, 0, 0, 0, 995, + 997, 0, 1198, 1172, 0, 775, 0, 0, 0, 74, + 0, 370, 369, 321, 317, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 917, 916, 965, 1001, 0, 0, 1069, 1070, 966, - 0, 0, 1076, 0, 0, 0, 971, 0, 0, 0, - 0, 1118, 927, 1040, 1007, 1005, 933, 829, 0, 0, - 0, 0, 0, 0, 0, 882, 870, 0, 880, 884, - 0, 0, 0, 864, 0, 0, 862, 894, 858, 0, - 0, 895, 0, 0, 0, 941, 567, 567, 567, 567, - 564, 566, 0, 0, 0, 0, 1463, 0, 694, 672, - 674, 681, 694, 699, 943, 720, 944, 1149, 0, 638, - 577, 1119, 638, 0, 458, 429, 0, 1179, 0, 170, - 152, 172, 171, 0, 179, 0, 1097, 0, 170, 154, - 0, 173, 0, 1178, 0, 185, 582, 0, 1027, 590, - 0, 584, 632, 631, 0, 600, 662, 598, 0, 668, - 0, 0, 0, 279, 0, 0, 0, 234, 0, 0, - 343, 0, 330, 78, 0, 0, 0, 52, 97, 70, - 62, 48, 76, 0, 0, 81, 0, 74, 91, 92, - 90, 95, 0, 263, 244, 276, 0, 0, 0, 0, + 74, 71, 74, 709, 0, 74, 1096, 1347, 1201, 0, + 83, 100, 1025, 1045, 1026, 1046, 896, 922, 0, 904, + 909, 887, 0, 887, 0, 906, 910, 887, 905, 887, + 900, 0, 870, 0, 1011, 0, 1010, 0, 682, 0, + 0, 669, 665, 0, 0, 0, 0, 0, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 0, 0, 645, + 0, 0, 0, 595, 606, 607, 608, 603, 604, 605, + 597, 598, 599, 600, 601, 602, 621, 0, 0, 0, + 0, 0, 0, 0, 0, 483, 0, 0, 506, 586, + 0, 623, 655, 0, 0, 0, 0, 0, 0, 623, + 661, 0, 0, 0, 695, 0, 692, 459, 681, 0, + 0, 458, 0, 0, 0, 723, 724, 415, 429, 430, + 431, 435, 756, 755, 689, 0, 683, 0, 0, 416, + 439, 444, 0, 662, 477, 0, 465, 0, 452, 0, + 463, 467, 440, 455, 0, 436, 0, 684, 618, 620, + 0, 616, 0, 426, 427, 428, 420, 421, 422, 423, + 424, 425, 432, 594, 592, 593, 0, 0, 0, 569, + 460, 0, 0, 462, 461, 1339, 1376, 0, 149, 149, + 149, 137, 147, 688, 0, 306, 161, 697, 306, 0, + 413, 295, 749, 865, 853, 854, 624, 748, 1066, 0, + 167, 168, 0, 172, 1574, 1465, 0, 0, 0, 0, + 210, 248, 0, 239, 207, 208, 0, 206, 715, 211, + 714, 212, 215, 216, 184, 249, 704, 251, 0, 244, + 121, 120, 255, 0, 955, 0, 0, 0, 0, 1055, + 1072, 953, 0, 681, 1088, 257, 0, 0, 791, 0, + 1347, 808, 0, 0, 0, 0, 0, 0, 1107, 1144, + 1107, 846, 1347, 74, 1347, 74, 1245, 1314, 1481, 1177, + 0, 804, 837, 0, 965, 1206, 0, 1162, 827, 842, + 958, 0, 0, 793, 1018, 1032, 1037, 961, 1041, 1038, + 759, 1039, 972, 0, 789, 0, 959, 0, 757, 0, + 0, 795, 963, 761, 159, 159, 159, 0, 628, 0, + 0, 0, 630, 631, 677, 0, 888, 0, 1200, 0, + 898, 878, 879, 889, 0, 0, 1201, 990, 0, 747, + 873, 0, 0, 851, 847, 0, 0, 0, 0, 1199, + 1192, 1190, 1220, 0, 1197, 1191, 0, 0, 1148, 0, + 977, 0, 0, 0, 339, 352, 47, 326, 0, 380, + 379, 381, 381, 326, 0, 312, 0, 324, 0, 364, + 333, 406, 407, 408, 409, 410, 411, 412, 40, 42, + 0, 44, 0, 0, 894, 0, 892, 897, 893, 891, + 0, 886, 0, 917, 0, 0, 0, 0, 0, 0, + 946, 633, 154, 482, 0, 0, 666, 0, 0, 557, + 0, 532, 534, 547, 0, 536, 538, 0, 610, 0, + 0, 0, 548, 485, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 579, 575, 576, 935, 1092, 509, 510, 207, - 508, 337, 0, 0, 325, 395, 1182, 0, 1232, 0, - 1230, 0, 367, 0, 328, 1238, 0, 398, 303, 299, - 0, 297, 296, 298, 0, 403, 394, 0, 0, 389, - 774, 739, 0, 792, 790, 738, 0, 734, 741, 1223, - 0, 512, 507, 0, 471, 496, 501, 0, 505, 503, - 502, 497, 500, 0, 1084, 1080, 0, 945, 1050, 0, - 1038, 1064, 1063, 900, 912, 913, 914, 1065, 0, 0, - 0, 909, 910, 911, 903, 904, 905, 906, 907, 908, - 915, 1074, 1073, 1067, 1068, 0, 968, 969, 970, 1075, - 0, 1110, 1039, 1115, 0, 0, 1004, 1138, 833, 0, - 0, 861, 1079, 885, 0, 0, 0, 857, 1026, 0, - 0, 0, 0, 0, 866, 0, 0, 0, 988, 983, - 984, 0, 0, 0, 0, 558, 557, 563, 694, 699, - 0, 541, 0, 681, 0, 693, 619, 692, 0, 0, - 705, 703, 0, 705, 0, 705, 0, 619, 0, 695, - 619, 692, 0, 712, 1123, 721, 0, 653, 0, 1109, - 653, 0, 554, 1177, 0, 1173, 0, 0, 0, 160, - 157, 147, 0, 0, 182, 170, 161, 0, 583, 588, - 589, 599, 1121, 194, 234, 0, 0, 59, 0, 345, - 291, 323, 306, 0, 0, 0, 235, 0, 311, 0, - 51, 71, 0, 67, 0, 96, 0, 0, 0, 0, - 0, 54, 66, 0, 49, 0, 1223, 1223, 57, 290, - 1157, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, - 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1714, 1637, 241, - 1638, 1410, 1639, 1640, 1641, 0, 1642, 731, 1643, 1644, - 1645, 1013, 1014, 239, 332, 236, 338, 238, 240, 0, - 1158, 237, 335, 190, 107, 0, 188, 0, 105, 197, - 195, 192, 109, 938, 939, 936, 577, 490, 470, 0, - 0, 0, 1345, 0, 1229, 0, 395, 365, 0, 325, - 402, 400, 0, 353, 275, 348, 0, 424, 0, 0, - 0, 735, 729, 1194, 0, 484, 0, 504, 1083, 961, - 972, 1062, 0, 0, 0, 0, 967, 962, 1117, 0, - 1114, 891, 889, 886, 0, 887, 865, 0, 0, 863, - 859, 0, 896, 974, 0, 990, 987, 562, 561, 560, - 559, 680, 678, 0, 683, 1149, 690, 612, 618, 679, - 0, 675, 0, 704, 700, 0, 701, 0, 0, 702, - 0, 676, 0, 1149, 677, 0, 719, 0, 0, 979, - 935, 979, 459, 169, 149, 0, 150, 180, 0, 0, - 0, 0, 174, 527, 0, 341, 61, 0, 323, 0, - 234, 308, 307, 310, 305, 309, 312, 0, 0, 0, - 0, 0, 292, 0, 0, 0, 255, 0, 0, 323, - 0, 329, 251, 252, 362, 0, 0, 0, 63, 53, - 50, 55, 64, 0, 0, 65, 68, 727, 80, 73, - 1714, 1721, 0, 0, 0, 0, 0, 0, 466, 473, - 207, 0, 0, 299, 0, 0, 325, 1233, 0, 0, - 402, 0, 1235, 401, 0, 0, 231, 0, 272, 0, - 0, 417, 0, 388, 387, 0, 0, 472, 918, 0, - 0, 0, 1116, 888, 892, 890, 867, 976, 0, 579, - 715, 0, 718, 682, 0, 0, 607, 614, 0, 617, - 611, 0, 684, 0, 0, 686, 688, 0, 0, 0, - 723, 0, 0, 0, 1126, 1287, 1555, 1462, 0, 637, - 639, 642, 644, 643, 645, 641, 652, 0, 610, 1136, - 610, 0, 0, 0, 183, 0, 176, 176, 0, 162, - 1028, 0, 234, 0, 322, 342, 270, 0, 0, 253, - 0, 260, 0, 294, 295, 293, 254, 323, 328, 256, - 0, 363, 0, 72, 0, 88, 0, 0, 334, 198, - 196, 937, 490, 0, 395, 275, 424, 0, 0, 1238, - 399, 299, 288, 281, 282, 283, 284, 285, 286, 287, - 302, 301, 273, 274, 0, 0, 0, 389, 0, 919, - 0, 920, 0, 993, 720, 0, 0, 714, 0, 605, - 603, 606, 608, 604, 0, 0, 691, 707, 0, 687, - 685, 696, 0, 727, 0, 698, 0, 0, 0, 646, - 0, 978, 980, 0, 0, 543, 542, 0, 156, 0, - 722, 0, 0, 178, 178, 164, 0, 328, 344, 0, - 314, 321, 313, 0, 0, 250, 0, 257, 352, 259, - 243, 726, 0, 75, 0, 339, 465, 469, 0, 233, - 418, 0, 424, 402, 275, 0, 421, 0, 0, 395, - 921, 989, 0, 0, 0, 713, 716, 0, 689, 0, - 0, 0, 724, 725, 697, 0, 0, 0, 640, 0, - 0, 612, 151, 176, 155, 184, 175, 587, 177, 587, - 0, 352, 300, 0, 0, 278, 243, 0, 269, 0, - 69, 87, 340, 0, 325, 419, 1236, 232, 422, 423, - 0, 722, 1543, 1288, 1514, 0, 991, 994, 992, 986, - 0, 615, 0, 621, 706, 648, 0, 647, 981, 982, - 609, 178, 590, 590, 722, 269, 315, 320, 0, 258, - 261, 349, 350, 351, 0, 265, 262, 266, 0, 424, - 0, 385, 0, 998, 997, 996, 1000, 999, 717, 0, - 0, 613, 649, 587, 167, 166, 163, 234, 277, 0, - 0, 0, 267, 0, 268, 242, 420, 395, 0, 616, - 0, 590, 346, 247, 0, 246, 0, 331, 264, 722, - 995, 0, 168, 245, 249, 248, 386, 620 + 0, 0, 501, 500, 549, 585, 0, 0, 653, 654, + 550, 0, 0, 660, 0, 0, 0, 555, 0, 0, + 0, 0, 702, 511, 624, 591, 589, 517, 413, 0, + 0, 0, 0, 0, 0, 0, 466, 454, 0, 464, + 468, 0, 0, 0, 448, 0, 0, 446, 478, 442, + 0, 0, 479, 0, 0, 0, 525, 149, 149, 149, + 149, 146, 148, 0, 0, 0, 0, 1465, 0, 278, + 256, 258, 265, 278, 283, 527, 304, 528, 733, 0, + 220, 159, 703, 220, 0, 940, 856, 0, 164, 0, + 611, 172, 0, 166, 214, 213, 0, 182, 246, 180, + 0, 252, 956, 0, 1077, 1061, 1059, 1079, 1078, 0, + 681, 1086, 0, 0, 1077, 0, 1080, 1092, 0, 955, + 0, 0, 0, 0, 1152, 0, 0, 0, 1107, 0, + 0, 1216, 0, 1203, 826, 0, 0, 0, 800, 845, + 818, 810, 796, 824, 0, 0, 829, 0, 822, 839, + 840, 838, 843, 0, 1117, 1136, 0, 0, 1149, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 157, 158, 519, 676, 920, 921, + 919, 1023, 1210, 0, 0, 1198, 775, 988, 0, 874, + 0, 872, 0, 769, 0, 998, 1201, 0, 1176, 1172, + 0, 1170, 1169, 1171, 0, 978, 1097, 0, 973, 774, + 0, 358, 323, 0, 376, 374, 322, 0, 318, 325, + 74, 0, 918, 0, 882, 923, 907, 912, 0, 916, + 914, 913, 908, 911, 0, 668, 664, 0, 529, 634, + 0, 622, 648, 647, 484, 496, 497, 498, 649, 0, + 0, 0, 493, 494, 495, 487, 488, 489, 490, 491, + 492, 499, 658, 657, 651, 652, 0, 552, 553, 554, + 659, 0, 694, 623, 699, 0, 0, 588, 722, 417, + 0, 0, 445, 663, 469, 0, 0, 0, 441, 610, + 0, 0, 0, 0, 0, 450, 0, 0, 0, 572, + 567, 568, 0, 0, 0, 0, 140, 139, 145, 278, + 283, 0, 123, 0, 265, 0, 277, 201, 276, 0, + 0, 289, 287, 0, 289, 0, 289, 0, 201, 0, + 279, 201, 276, 0, 296, 707, 305, 0, 235, 0, + 693, 235, 0, 136, 0, 165, 170, 171, 181, 705, + 954, 0, 950, 0, 1067, 0, 0, 1064, 1054, 0, + 0, 1089, 1077, 1068, 966, 1107, 0, 0, 807, 0, + 1218, 1164, 1196, 1179, 0, 0, 0, 1108, 0, 1184, + 0, 799, 819, 0, 815, 0, 844, 0, 0, 0, + 0, 0, 802, 814, 0, 797, 0, 74, 74, 805, + 741, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, + 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1716, 1639, 1114, + 1640, 1412, 1641, 1642, 1643, 0, 1644, 315, 1645, 1646, + 1647, 597, 598, 1211, 1111, 1113, 0, 1112, 1205, 1109, + 742, 1110, 1208, 1163, 962, 760, 0, 960, 0, 758, + 969, 967, 964, 762, 522, 523, 520, 159, 901, 881, + 0, 0, 0, 1347, 0, 871, 0, 0, 0, 0, + 775, 996, 1198, 0, 1226, 1148, 1221, 0, 977, 975, + 0, 986, 319, 313, 45, 0, 895, 0, 915, 667, + 545, 556, 646, 0, 0, 0, 0, 551, 546, 701, + 0, 698, 475, 473, 470, 0, 471, 449, 0, 0, + 447, 443, 0, 480, 558, 0, 574, 571, 144, 143, + 142, 141, 264, 262, 0, 267, 733, 274, 194, 200, + 263, 0, 259, 0, 288, 284, 0, 285, 0, 0, + 286, 0, 260, 0, 733, 261, 0, 303, 0, 0, + 563, 519, 563, 941, 0, 1076, 1056, 0, 1057, 1087, + 0, 0, 0, 0, 1081, 787, 1214, 809, 0, 1196, + 0, 1107, 1181, 1180, 1183, 1178, 1182, 1185, 0, 0, + 0, 0, 0, 1165, 0, 0, 0, 1128, 0, 0, + 1196, 0, 1202, 1124, 1125, 1235, 0, 0, 0, 811, + 801, 798, 803, 812, 0, 0, 813, 816, 311, 828, + 821, 1716, 1723, 0, 0, 0, 0, 0, 0, 877, + 884, 1023, 0, 0, 1172, 0, 0, 1198, 875, 0, + 767, 768, 0, 0, 0, 0, 977, 0, 0, 1104, + 0, 1145, 0, 1094, 976, 0, 979, 0, 883, 502, + 0, 0, 0, 700, 472, 476, 474, 451, 560, 0, + 161, 299, 0, 302, 266, 0, 0, 189, 196, 0, + 199, 193, 0, 268, 0, 0, 270, 272, 0, 0, + 0, 307, 0, 0, 0, 710, 1289, 1557, 1464, 0, + 219, 221, 224, 226, 225, 227, 223, 234, 0, 237, + 720, 237, 612, 0, 0, 0, 1083, 1083, 1090, 0, + 0, 1069, 0, 1107, 0, 1195, 1215, 1143, 0, 0, + 1126, 0, 1133, 0, 1167, 1168, 1166, 1127, 1196, 1201, + 1129, 0, 1236, 0, 820, 0, 836, 0, 0, 1207, + 970, 968, 521, 901, 0, 775, 1148, 986, 0, 769, + 0, 0, 1172, 1097, 974, 1161, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1175, 1174, 1146, 1147, 0, 0, 0, + 503, 0, 504, 0, 577, 304, 0, 0, 298, 0, + 187, 185, 188, 190, 186, 0, 0, 275, 291, 0, + 271, 269, 280, 0, 311, 0, 282, 0, 0, 0, + 228, 0, 562, 564, 0, 0, 192, 192, 0, 1063, + 0, 0, 1085, 1085, 306, 0, 1071, 0, 1201, 1217, + 1194, 0, 1187, 1186, 0, 0, 1123, 0, 1130, 1225, + 1132, 1116, 310, 0, 823, 0, 1212, 876, 880, 0, + 1106, 980, 0, 0, 775, 986, 1148, 977, 0, 983, + 0, 505, 573, 0, 0, 0, 297, 300, 0, 273, + 0, 0, 0, 308, 309, 281, 0, 0, 0, 222, + 0, 0, 236, 0, 125, 124, 1058, 1083, 1082, 1084, + 169, 169, 1062, 1091, 0, 1225, 0, 1173, 0, 1151, + 1116, 0, 1142, 0, 817, 835, 1213, 0, 1198, 0, + 306, 981, 1105, 1095, 984, 985, 1545, 1290, 1516, 0, + 575, 578, 576, 570, 0, 197, 0, 203, 290, 230, + 0, 229, 565, 566, 194, 1085, 172, 172, 306, 1142, + 1193, 1188, 0, 1131, 1134, 1222, 1223, 1224, 0, 1138, + 1135, 1139, 0, 986, 0, 765, 0, 582, 581, 580, + 584, 583, 301, 0, 0, 195, 231, 191, 169, 1074, + 1073, 1070, 1107, 1150, 0, 0, 0, 1140, 0, 1141, + 1115, 982, 775, 0, 198, 0, 172, 1219, 1120, 0, + 1119, 0, 1204, 1137, 306, 579, 0, 1075, 1118, 1122, + 1121, 766, 202 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 37, 38, 39, 40, 2129, 2130, 2131, 1818, 980, - 2823, 1819, 981, 982, 2133, 41, 42, 43, 44, 45, - 599, 1237, 536, 1238, 1239, 796, 46, 1249, 798, 799, - 47, 548, 48, 538, 1753, 1381, 2550, 50, 2084, 1758, - 2088, 2694, 2335, 2083, 2090, 2803, 2867, 2085, 1759, 2695, - 1760, 51, 1439, 52, 1511, 1466, 1250, 1000, 1456, 1242, - 53, 2120, 2424, 2880, 2143, 2967, 2581, 2582, 1820, 2925, - 2926, 2122, 2195, 1448, 2919, 1886, 2750, 1824, 1807, 2583, - 1895, 2704, 2463, 1821, 2366, 1887, 2567, 2809, 1519, 1888, - 2810, 2560, 1889, 1491, 1516, 2368, 2927, 1825, 1492, 2425, - 1435, 1890, 2878, 1891, 495, 2586, 54, 1512, 55, 56, - 571, 57, 558, 559, 58, 2633, 2470, 1153, 1520, 1897, - 496, 539, 2187, 1149, 60, 61, 85, 62, 2631, 63, - 930, 587, 931, 933, 64, 65, 572, 573, 1251, 1362, - 1252, 66, 1872, 2610, 2213, 2611, 1941, 1866, 1247, 1939, - 1565, 1495, 1248, 483, 1579, 2214, 2169, 1566, 67, 497, - 1155, 68, 69, 809, 633, 540, 541, 882, 73, 74, - 75, 578, 590, 591, 1351, 1730, 2052, 953, 564, 565, - 1860, 612, 1485, 1389, 1390, 1766, 2101, 1416, 1417, 962, - 963, 2657, 2795, 2658, 2659, 2518, 2519, 2941, 1404, 1408, - 1409, 1782, 1772, 1395, 2327, 2679, 2680, 2681, 2682, 2683, - 2684, 883, 2539, 1412, 1413, 965, 966, 967, 1421, 1792, - 77, 1734, 2059, 2060, 2061, 2305, 2306, 2320, 2316, 2524, - 2665, 2062, 2063, 2650, 2651, 2767, 2323, 2069, 2669, 2670, - 2725, 1538, 712, 1254, 1186, 714, 884, 715, 1166, 885, - 1170, 717, 886, 887, 888, 720, 889, 890, 891, 723, - 1162, 892, 893, 1181, 1205, 1206, 1207, 1208, 1209, 1210, - 1211, 1212, 1213, 934, 1633, 895, 896, 897, 2065, 898, - 1343, 1718, 2688, 2791, 2792, 2045, 2289, 2505, 2649, 2844, - 2896, 2897, 899, 900, 1294, 1295, 1715, 1338, 1339, 901, - 2427, 1341, 1626, 1293, 1290, 1043, 1044, 1255, 1606, 1607, - 1629, 1970, 1636, 1642, 1997, 1998, 1650, 1683, 902, 1590, - 1591, 1956, 1263, 903, 630, 1050, 631, 1260, 1677, 911, - 904, 905, 1287, 1288, 2011, 2264, 1655, 1788, 582, 2661, - 735, 1130, 906, 907, 908, 909, 936, 584, 1045, 476, - 726, 2868, 1143, 940, 1046, 1822, 1673, 542, 948, 2079, - 1749, 79, 1141, 1505, 80, 528, 529, 732, 1218, 530, - 727, 81, 2179, 2180, 82, 739, 505, 478, 479, 729, - 1133, 1048, 1134 + -1, 37, 38, 39, 40, 528, 529, 731, 1188, 530, + 712, 41, 599, 1238, 536, 1239, 1240, 796, 42, 1250, + 798, 799, 538, 882, 45, 46, 47, 577, 590, 591, + 1352, 1731, 2053, 947, 564, 565, 1861, 604, 1486, 1383, + 1384, 1753, 2083, 1410, 1411, 956, 957, 2658, 2864, 2659, + 2660, 2519, 2520, 2945, 1398, 1402, 1403, 1769, 1759, 1389, + 2328, 2680, 2681, 2682, 2683, 2684, 2685, 883, 2540, 2796, + 1406, 1407, 959, 960, 961, 1415, 1779, 49, 1735, 2060, + 2061, 2062, 2306, 2307, 2321, 2317, 2525, 2666, 2063, 2064, + 2651, 2652, 2768, 2324, 2070, 2670, 2671, 2726, 1540, 713, + 1255, 1191, 715, 884, 716, 1167, 885, 1171, 718, 886, + 887, 888, 721, 889, 890, 891, 724, 1163, 892, 893, + 1182, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, + 934, 1634, 895, 896, 897, 2066, 898, 1344, 1719, 2689, + 2792, 2793, 2046, 2290, 2506, 2650, 2845, 2900, 2901, 899, + 900, 1295, 1296, 1716, 1339, 1340, 901, 2424, 1342, 1627, + 1294, 1291, 1043, 1044, 1256, 1607, 1608, 1630, 1971, 1637, + 1643, 1998, 1999, 1651, 1684, 902, 1591, 1592, 1957, 1264, + 903, 630, 1050, 631, 1261, 1678, 911, 904, 905, 1288, + 1289, 2012, 2265, 1656, 1775, 582, 2662, 735, 1131, 906, + 907, 908, 909, 936, 584, 1045, 476, 727, 2869, 1144, + 940, 1046, 1819, 1674, 50, 51, 52, 53, 2621, 2459, + 1147, 1512, 1902, 495, 54, 85, 539, 56, 2130, 2131, + 2132, 1820, 980, 2824, 1821, 981, 982, 2134, 57, 496, + 1149, 58, 930, 587, 931, 933, 59, 60, 2180, 2181, + 61, 1873, 2611, 2213, 2612, 1942, 1867, 1248, 1937, 1567, + 1496, 1249, 483, 1580, 2214, 2171, 1568, 62, 571, 572, + 1251, 1364, 1252, 63, 64, 540, 970, 2094, 1784, 66, + 1440, 541, 2198, 1155, 68, 2636, 69, 1142, 1504, 70, + 1519, 71, 72, 573, 73, 809, 635, 74, 1520, 1467, + 1253, 1000, 1457, 1245, 75, 76, 550, 542, 1790, 1422, + 2552, 78, 2101, 1794, 2104, 2698, 2342, 2099, 2105, 2802, + 2870, 2102, 1795, 2699, 1796, 79, 739, 80, 559, 560, + 81, 2121, 2428, 2884, 2145, 2972, 2582, 2583, 1822, 2929, + 2930, 2123, 2195, 1449, 2923, 1890, 2753, 1826, 1808, 2584, + 1898, 2705, 2464, 1823, 2367, 1891, 2568, 2811, 1513, 1892, + 2812, 2561, 1893, 1493, 1523, 2369, 2931, 1827, 1494, 2429, + 1437, 1894, 2882, 1895, 497, 2587, 82, 505, 478, 479, + 729, 1134, 1048, 1135 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -2605 +#define YYPACT_NINF -2614 static const int yypact[] = { - 5038, -82, 442, -2605, -2605, -82, 32819, -2605, -82, 59, - 2316, 37549, -2605, 5805, -82, 44171, 643, 205, 185, 232, - 38022, 38022, 44171, 44171, 38495, -82, 239, 44644, -2605, -82, - 22585, 35184, -2, -97, 45117, 44171, 1350, 437, -23, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 175, -2605, -2605, -2605, - 143, -2605, -2605, -2605, -2605, -2605, 22111, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, 101, -2605, 33, 116, 465, 67, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 38968, 44171, 39441, 35657, - 39914, -2605, 85, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, 97, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, 121, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, 91, -171, -2605, 138, -2605, -2605, - -2605, -2605, 1350, 40387, -2605, 371, 404, -2605, 230, 45590, - -2605, -2605, 44171, -2605, -2605, 438, 444, 40387, -2605, -2605, - -2605, 40860, -2605, -2605, -2605, -2605, 411, -2605, -2605, 288, - -2605, 157, -2605, -2605, -2605, 292, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, 398, -2605, 50793, -2605, 46063, 46536, - 47009, -2605, 324, 52, 47, 21637, -2605, 175, -2605, -2605, - -2605, -2605, -2605, 823, -2605, 38022, 823, -2605, -2605, -2605, - -2605, -2605, 360, 370, -2605, 395, 660, 396, -2605, -2605, - -2605, -2605, -2605, 615, 9360, 9360, 47482, 47482, 823, 47482, - 477, 34, -2605, -2605, -2605, -97, 396, -2605, 465, -2605, - 23059, -2605, 475, -171, -2605, -2605, 158, 810, 12348, 44171, - 489, -2605, 503, 489, 510, 516, -2605, 5038, -2605, 40387, - 856, 816, 35184, -2605, 574, 817, 396, -2605, 251, 251, - 1031, 251, 532, 602, -2605, 798, -2605, 563, 920, 1022, - 739, 950, 6364, 959, 1023, 968, 1070, 6870, 12348, 31400, - -2605, -171, -2605, 603, -2605, -2605, -2605, 652, -2605, -2605, - -2605, -2605, 52, 879, -2605, 666, 1172, 737, 41333, 41806, - 40387, 1160, 764, -2605, -2605, -2605, -2605, 802, -2605, -2605, - 80, -2605, -2605, -2605, -2605, 822, -2605, 822, 822, -2605, - -2605, -2605, -2605, 788, 788, 996, 848, -2605, -2605, -2605, - 1195, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, 862, 871, -2605, 822, -2605, 788, -2605, -2605, -2605, - -2605, -2605, 52167, -2605, -2605, -2605, -2605, 262, 272, -2605, - -2605, -2605, 864, -2605, 1313, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, 874, -2605, 749, 788, 66, -2605, -2605, - 1220, -2605, 77, 1226, 166, -2605, 1230, 1107, 12348, -2605, - 1003, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -97, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 435, -2605, -2605, 28938, - -2605, -2605, 47, 918, -2605, -2605, 28938, 12846, 51251, 1387, - -2605, 1198, 44171, 947, -2605, -2605, -2605, -2605, -2605, -2605, - 952, 1451, 88, 1461, 12348, 982, 88, 88, 986, 1323, - -2605, -2605, -2605, 139, 998, 1012, -2605, 141, 141, -2605, - 1024, 1029, -2605, 144, 1043, 1061, 1534, 1553, 122, 1085, - 1111, 871, 88, 12348, -2605, 1125, 141, 1143, 1157, 1162, - 1566, 1176, -2605, 1606, 1182, 93, 110, 1193, 1196, -2605, - 1201, -2605, 146, 12348, 12348, 12348, 1544, 12348, 7866, 40387, - 1699, -2605, -171, 1221, 823, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, 132, 5092, -2605, 1261, -2605, -2605, -2605, - 188, 12348, -2605, 1709, -17, -2605, 151, -2605, -2605, -2605, - 211, 1511, 1233, -2605, -2605, -2605, -2605, 170, 1634, 27992, - 28465, 40387, -2605, -2605, -171, -2605, -2605, -2605, -2605, -2605, - -2605, 491, -2605, 175, 30326, 538, -171, 489, 44171, 44171, - 1703, -2605, -2605, -2605, 503, 35184, 40387, 47955, 1364, -2605, - 1512, -2605, -2605, 465, 465, 12348, 465, 455, 18, 9858, - 13344, 1577, 1464, 148, 531, 1582, -2605, 1469, 532, 602, - 12348, 40387, 33292, 778, 791, 1260, 1344, 1268, 470, 1675, - -2605, 1271, -2605, 1359, 40387, 52167, 172, -2605, 1717, 172, - 172, 560, 1723, 1367, 195, 1528, 352, -122, 1271, 2119, - -2605, 35184, 112, 463, 1271, 40387, 1378, 473, 1271, 92, - 12846, 1050, 1112, 663, 1156, 1187, 108, 12846, 1203, 1215, - 1234, 1272, 1301, 1361, 1384, 1421, 1485, 1497, 115, 1517, - 1583, 1609, 1617, 1619, 1629, 120, 1632, 134, 12846, 1648, - 1297, -2605, 30326, -54, -2605, -2605, 1659, 125, -2605, 26572, - 1292, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 1390, 44171, 1348, 335, - 1655, 1705, 31400, 1312, 1666, 40387, 1547, 2119, 1550, 1783, - 1332, 652, -2605, 48428, 10356, 1789, -2605, -2605, -2605, -2605, - -2605, -2605, 1334, -2605, -2605, 12348, -2605, -2605, -2605, 1818, - -2605, 51251, 51251, 822, 822, -2605, -2605, 1795, 1423, 1424, - 1818, -2605, 1818, -2605, 44171, 1341, 1347, 1818, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, 1818, 1428, -2605, 1430, 1434, 1436, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, 51251, -2605, 44171, - 44171, -2605, 44171, 44171, -2605, 44171, 44171, 546, 42279, 47, - 36130, -2605, -2605, -2605, -2605, 734, 787, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 31400, -2605, 2255, -2605, - -2605, -2605, 1338, 554, -2605, 566, 1350, -2605, -2605, 12348, - -171, 12348, 30326, 1398, 12348, 12348, 1357, 1818, 1818, -2605, - 2207, 1818, 1818, 30457, 12348, 25906, 12348, 16830, 10854, 12348, - 12348, 8364, 12348, 30457, 1842, 1842, 24007, -2605, 1515, 1360, - 1366, 1052, 5413, 1362, -2605, 413, -2605, 1358, -2605, -171, - -171, 12348, -2605, 12348, 3382, 3382, -2605, 131, 51251, 12348, - 12348, 12348, 12348, 30927, 1452, 129, 44171, 12348, 12348, 1371, - 1385, -2605, 12348, 1591, -2605, 1374, 12348, 1456, 135, 12348, - 12348, 12348, 12348, 12348, 12348, 12348, 12348, 12348, -2605, -2605, - 18310, 159, 1691, 1713, -171, 12348, -98, 505, 12348, 36603, - 9360, 1707, 6870, -2605, -171, 27046, 103, 1707, -2605, -2605, - -2605, -2605, -2605, 152, -2605, -2605, -2605, 1338, -2605, 1338, - 1380, 40387, 158, 34711, -2605, 12348, -2605, 581, 1388, -2605, - 1441, 731, 1841, 44171, -2605, 24481, -2605, 1667, -2605, 1386, - -2605, 29407, 1667, -2605, -2605, 17314, 1507, 1665, 1603, -2605, - -2605, 1584, 1585, -2605, 1396, 30374, 13842, 13842, -2605, 1304, - 30326, 1324, -2605, -2605, -2605, -2605, -2605, -2605, 8, -2605, - 40387, -11, 1577, 531, 590, 1122, 1402, 48901, 44171, 1677, - 1627, 1679, -140, -2605, -2605, -2605, 51251, -2605, 44171, 44171, - 49374, 49847, 31873, 44171, 31400, -2605, -2605, -2605, -2605, 44171, - 792, 44171, 6423, -2605, -2605, -2605, 172, -2605, -2605, -2605, - -2605, -2605, 44171, 44171, -2605, -2605, 172, 44171, 44171, 172, - -2605, 1183, 44171, 44171, 44171, 44171, 1499, 44171, 44171, -41, - -41, 1607, -2605, 11352, 74, -2605, 12348, 12348, -2605, 12348, - 1580, -2605, 598, -2605, 1623, 73, 1459, 40387, 40387, 44171, - 1610, -2605, -2605, -2605, -2605, -2605, -2605, 31400, 1415, 1416, - 1759, 2119, -2605, 1760, 979, 33765, 540, 1457, 1644, -2605, - 1630, -2605, -2605, 623, 12348, 12348, 653, 1425, 66, 659, - -2605, -2605, 1429, 1347, 1439, 1440, 1427, 1432, 678, 51251, - 1818, 90, 1438, 1443, 1422, 852, 692, 1322, -2605, 77, - -2605, 166, -2605, 1638, 150, -2605, 1654, 1887, 652, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 682, 21163, -2605, -2605, - 1893, 823, 1893, 456, -2605, -2605, 1893, -2605, 1893, -2605, - 28938, -2605, 12846, -2605, 51251, -2605, 683, -2605, 1447, 12348, - 58, -2605, 29473, 706, 12348, 1446, 1450, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 1462, 1776, -2605, 1468, - 1475, 4658, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 1495, 1458, 29556, 1500, - 16830, 16830, 7866, 1106, -2605, 16830, 1502, -2605, -2605, 741, - 29425, 1360, 1503, 29777, 11850, 12348, 11850, 11850, 29956, 1360, - 1504, 30053, 44171, -2605, 14340, -2605, -2605, -2605, 12348, 40387, - -2605, 12348, 769, 5869, -2605, -2605, -2605, 3218, 3218, 3218, - 30457, -2605, -2605, -2605, 1470, -2605, 16830, 16830, -2605, 5255, - 2605, 7866, -2605, -2605, 1790, -2605, 1105, -2605, 1506, -2605, - -2605, 3279, -2605, 25906, 30141, 12348, 130, -2605, 12348, 1371, - 12348, 1551, 3218, 3218, 3218, 160, 160, 169, 169, 169, - 266, 505, -2605, -2605, -2605, 1508, 1510, 1513, 1711, 30326, - 1176, 12348, -2605, 30326, 736, 890, 40387, 2819, 3036, 4552, - -2605, -2605, -2605, 19741, 1541, -54, 1544, 1541, 1818, 3382, - -2605, 503, -2605, -2605, -2605, 30326, -2605, 1350, 19741, 1555, - 1567, -85, 22585, 1724, -2605, 44171, -2605, 44171, -2605, -18, - 1529, -2605, 12348, -2605, -2605, 2230, 1532, 1727, 1729, 898, - 898, 1304, 1735, -2605, -2605, 1587, -2605, -2605, -2605, 12348, - 8862, 1349, -2605, 1368, -2605, -2605, -2605, -2605, 1526, -2605, - -2605, 1784, -2605, -2605, -2605, -2605, 1615, 1271, 12348, 1762, - -2605, 124, 1535, 1881, -134, 1835, 44171, -2605, 1749, -2605, - 946, 1889, 150, 1890, 150, 31400, 31400, 31400, 797, -2605, - -2605, 823, -2605, -2605, 805, -2605, 227, -2605, -2605, -2605, - 1626, 479, 1271, 2119, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, 164, 651, 1271, 1631, -2605, 1635, -2605, 1636, 861, - 1271, -2605, -2605, 74, 74, 74, 12846, -2605, 1768, 1770, - 1560, 30326, 30326, 30326, 1557, -2605, 107, -2605, 44171, -2605, - -2605, -2605, 1580, 40387, 1562, 652, -2605, 586, -2605, 823, - 44171, 40387, 40387, 44171, 1601, 40387, -2605, -2605, -2605, 1563, - 1561, -2605, 51251, -58, 1777, 1778, 1268, 2023, 1910, 40387, - -2605, 30326, 840, -2605, -2605, -2605, -2605, 1818, -2605, -2605, - 303, 303, -2605, 44171, -2605, 1572, -2605, 1573, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, 44171, - -2605, 1915, 1350, -2605, 31400, -2605, 34238, -2605, -2605, -2605, - -2605, 823, -2605, 823, 1793, 44171, 27519, 823, 823, -2605, - -2605, -2605, -2605, 30005, 12348, -2605, 1926, 51251, -2605, 5930, - -2605, -2605, -2605, 12348, -2605, -2605, 12348, -2605, 25906, 12348, - 1901, -2605, 2059, 2059, 5413, 51251, 16830, 16830, 16830, 16830, - 595, 1143, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, - 16830, 17812, 286, -2605, -2605, 12348, 12348, 1908, 1901, -2605, - 51251, 1590, 1360, 1594, 1596, 12348, -2605, 51251, 842, 7866, - 30095, -2605, -171, 6169, -2605, 30326, -2605, 3382, 12348, 1121, - 1701, 12348, 859, 12348, 1905, -2605, -2605, 1592, -2605, -2605, - 51251, 12348, 1598, 3397, 16830, 16830, 4029, -2605, 4151, 12348, - 7866, -2605, 1607, 1625, 24955, -2605, 1692, 1692, 1692, 1692, - -2605, -2605, 40387, 40387, 40387, 20215, 1909, 19267, 42752, 1602, - 755, -2605, 42752, 43225, -2605, 1633, -2605, -171, 12348, 1935, - 74, 1515, 1935, 1621, -2605, -2605, 1624, 1602, 12348, 1771, - -2605, -2605, -2605, 1681, -2605, 865, -2605, 2038, 1771, -2605, - 875, -2605, 24481, 1555, 12348, -171, -2605, 1639, -2605, 1532, - 149, -2605, -2605, -2605, 1839, -2605, -2605, -2605, 40387, -2605, - 44171, 6291, 1974, -2605, 44171, 44171, 44171, -2605, 44171, 889, - 119, 1641, -2605, 119, 1953, 483, 1268, 195, 2670, -27, - -2605, -2605, -2605, 1704, 44171, -2605, 44171, -2605, -2605, -2605, - -2605, -2605, 31873, -2605, -2605, -2605, 31400, 25432, 31400, 44171, - 44171, 44171, 44171, 44171, 44171, 44171, 44171, 44171, 44171, 1637, - 1642, 1645, 1607, -2605, -2605, -2605, -2605, -2605, -2605, -122, - -2605, -2605, 107, 1647, 33765, 1457, 1705, 43698, -2605, 1650, - 1652, 891, 2119, 2091, 1657, 324, 183, -2605, -2605, 540, - 33765, -2605, -2605, -2605, 2049, -2605, -2605, 1350, 44171, 1702, - -2605, 1347, 1653, -2605, -2605, 1347, 51251, -2605, -2605, 150, - 40387, -2605, -2605, 906, -2605, -2605, -2605, 44171, 1658, -2605, - 1658, -2605, -2605, 12348, 30326, -2605, 1663, -2605, 30326, 26387, - -2605, 30326, 1908, -2605, 964, 964, 964, 1948, 1966, 196, - 1669, 964, 964, 964, 259, 259, 171, 171, 171, 2059, - 286, 30326, 30326, -2605, -2605, 1664, -2605, -2605, -2605, 1360, - 1673, -2605, 5321, -2605, 919, 44171, -2605, -2605, 282, 12348, - 12348, 5255, -2605, 4309, 12348, 51251, 925, 5255, 179, 12348, - 1805, 1916, 12348, 12348, 4771, 26405, 1674, 12348, 50320, -2605, - -2605, 40387, 40387, 40387, 40387, -2605, -2605, -2605, 42752, 43225, - 1670, 18792, 755, 1685, 40387, -2605, 1748, 1678, 19741, 1932, - 1866, -2605, 19741, 1866, 102, 1866, 1950, 1748, 23533, -2605, - 1748, 1680, 1900, -2605, 526, 30326, 2125, 2011, 1706, -2605, - 2011, 823, -2605, 30326, 9360, -2605, 1350, 1173, 44171, -171, - -53, -2605, 1714, 44171, -2605, 1771, 30326, 25906, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, 44171, 926, -2605, 935, 119, - -2605, 1740, -2605, 173, 1997, 68, -2605, 31400, 1465, 312, - -2605, 2010, 1929, -2605, 172, -2605, 12348, 312, 1930, 168, - 44171, -2605, -2605, 2709, -2605, 51251, 150, 150, -2605, -2605, - 1719, 1720, 1721, 1722, 1725, 1726, 1728, 1730, 1732, 1733, - 1734, 1736, 1737, 1742, 1743, 1745, 1750, 862, 1755, -2605, - 1756, 1639, 1757, 1761, 1763, 51709, 1764, 1766, 1767, 1773, - 1780, 734, 787, -2605, -2605, -2605, -2605, -2605, -2605, 666, - 1785, -2605, 1753, -2605, -2605, 1797, -2605, 1800, -2605, -2605, - -2605, -2605, -2605, -2605, -2605, -2605, 74, 918, 95, 44171, - 1769, 2182, 1955, 1779, -2605, 823, 1457, -2605, 1305, 33765, - 1601, -2605, 2122, 156, 1778, -2605, 137, 1816, 1971, 44171, - 1788, -2605, -2605, -2605, 2236, -2605, 34238, 1658, 30326, -2605, - -2605, -2605, 16830, 2114, 1791, 51251, -2605, -2605, -2605, 12348, - -2605, 5255, 5255, 4309, 936, -2605, 5255, 12348, 12348, 5255, - 5255, 12348, -2605, -2605, 26434, 1985, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, 32346, 42752, 1802, -2605, 37076, -2605, -2605, - 44171, 755, 19741, -2605, -2605, 1643, -2605, 19741, 2077, -2605, - 19741, -2605, 44171, 1806, -2605, 44171, -2605, 14838, 12348, 1844, - 823, 1844, -2605, 1233, -2605, -85, -2605, -2605, 2214, 20689, - 2168, 12348, -2605, -2605, 1808, 119, -2605, 1973, 1740, 1817, - -2605, -2605, -2605, -2605, -2605, -2605, -2605, 969, 1819, 44171, - 44171, 16830, -2605, 312, 182, 142, -2605, 2088, 40387, 1740, - 2229, -2605, -2605, -2605, -2605, 2197, 2278, 2170, -2605, -2605, - 30326, -2605, -2605, 1818, 1818, -2605, -2605, 2248, -2605, -2605, - -2605, -2605, 666, 337, 25432, 44171, 44171, 1829, -2605, -2605, - -122, 2201, 980, 540, 1350, 2177, 33765, -2605, 2293, 44171, - 1601, 1838, -2605, -2605, 178, 178, -2605, 1981, -2605, 1982, - 201, -2605, 40387, -2605, -2605, 20689, 1350, -2605, 2102, 16830, - 51251, 989, -2605, -2605, 5255, 5255, 5255, -2605, 2283, 1607, - -2605, 991, 2302, -2605, 44171, -84, -78, 1847, 1848, -2605, - -2605, 995, -2605, 12348, 1850, -2605, -2605, 19741, 1643, 999, - -2605, 51251, 44171, 1001, 51251, 1852, -115, 1853, 7368, 1851, - -2605, -2605, -2605, -2605, -2605, 30326, 30326, 44171, 1911, -2605, - 1911, 1912, 44171, 12348, -2605, 1016, 2275, 41, -20, 30326, - -2605, 40387, -2605, 31400, -2605, 119, -2605, 31400, 12348, -2605, - 1232, 1948, 2313, -2605, -2605, -2605, -2605, 1740, 652, -2605, - 44171, -2605, 2165, -2605, 44171, 1918, 367, 1934, -2605, -2605, - -2605, -2605, 918, 823, 1457, 1778, 1816, 40387, 1350, 324, - -2605, 540, -2605, -2605, -2605, -2605, -2605, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, 2290, 2072, 2292, 1702, 1033, 2102, - 1047, -2605, 12348, 17, 1633, 32346, 1868, -2605, 1051, -2605, - -2605, -2605, -2605, -2605, 44171, 908, -2605, 30326, 44171, -2605, - -2605, -2605, 44171, 2248, 1059, -2605, 12348, 1870, 12348, -2605, - 14838, 1871, -2605, 2328, 2013, -2605, -2605, 1350, -2605, 26453, - 1541, 20689, 44171, 44171, 44171, -2605, 1995, 652, 119, 1066, - -2605, 1888, -2605, 26523, 2101, -2605, 2189, -2605, 2133, -2605, - 1886, -2605, 12348, -2605, 1958, -2605, -2605, -2605, 2345, -2605, - -2605, 1891, 1816, 1601, 1778, 2096, -2605, 2098, 1894, 1457, - -2605, 1360, 15336, 15336, 1896, -2605, -2605, 44171, -2605, 1071, - 1913, 1072, -2605, -2605, -2605, 1079, 14838, 1088, -2605, 44171, - 1919, 37076, -2605, 2275, -2605, -2605, -2605, 265, -2605, 265, - 24481, 2133, -2605, 31400, 25432, 2127, 1886, 56, 2124, 2119, - -2605, 30326, -2605, 1350, 33765, -2605, -2605, -2605, -2605, -2605, - 20689, 1541, 16332, 2053, 111, 29454, -2605, -2605, -2605, -2605, - 1102, -2605, 2399, 2074, -2605, -2605, 1119, -2605, -2605, -2605, - -2605, 44171, 1532, 1532, -136, 2124, -2605, -2605, 2211, -2605, - -2605, -2605, -2605, -2605, 117, 2130, -2605, 2131, 1171, 1816, - 1120, -2605, 2382, -2605, -2605, -2605, -2605, -2605, -2605, 1924, - 1928, -2605, -2605, 265, -2605, -2605, -2605, -2605, -2605, 344, - 344, 2298, -2605, 1988, -2605, -2605, -2605, 1457, 15834, -2605, - 2414, 1532, 119, -2605, 2402, -2605, 189, -2605, -2605, 1541, - -2605, 1933, -2605, -2605, -2605, -2605, -2605, -2605 + 4751, -87, 607, -2614, -2614, -87, 32860, -2614, -87, 47, + 2111, 37600, -2614, 5961, -87, 44236, 289, 247, 213, 441, + 38074, 38074, 44236, 44236, 38548, -87, 208, 44710, -2614, -87, + 22201, 35230, -9, 113, 45184, 44236, -98, 736, 228, -2614, + -2614, -2614, 311, -2614, 89, -2614, 46, 144, -105, 302, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, 21726, -2614, -2614, -2614, -2614, -2614, 132, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, 39022, 44236, 39496, 35704, + 39970, -2614, 116, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, 122, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, 133, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, 314, 361, -2614, 142, -2614, -2614, + -2614, -2614, -98, 40444, -2614, 415, 532, -2614, 446, 45658, + -2614, -2614, 44236, -2614, -2614, 624, 40444, 697, -2614, -2614, + -2614, 40918, -2614, -2614, -2614, -2614, 597, -2614, -2614, 433, + -2614, 61, -2614, -2614, -2614, 453, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, 554, -2614, 50872, -2614, 46132, 46606, + 47080, -2614, 451, 531, 588, 21251, -2614, 311, -2614, -2614, + -2614, -2614, -2614, 949, -2614, 38074, 949, -2614, -2614, -2614, + -2614, -2614, -90, 467, -2614, 490, 770, -2614, 499, -2614, + -2614, -2614, -2614, 716, 8949, 8949, 47554, 47554, 949, 47554, + 534, -2614, -2614, 80, -2614, 113, -2614, -105, 499, -2614, + 22676, -2614, 536, 361, -2614, -2614, 207, 849, 11943, 44236, + 574, -2614, 540, 574, 606, 626, -2614, 4751, -2614, 40444, + 229, 229, 1078, 229, 614, 671, -2614, 1277, -2614, 645, + -2614, 693, 943, -2614, 499, 1006, 966, 35230, 1056, 425, + 847, 1066, 5831, 1086, 877, 1096, 995, 6454, 11943, 31438, + -2614, 361, -2614, -2614, -2614, 738, -2614, 758, -2614, -2614, + -2614, -2614, 531, 998, -2614, 789, 1250, 1206, 808, 870, + 41392, 41866, 40444, -2614, -2614, -2614, -2614, 864, -2614, -2614, + 642, -2614, -2614, -2614, -2614, 901, -2614, 901, 901, -2614, + -2614, -2614, -2614, 867, 867, 1050, 876, -2614, -2614, -2614, + 1221, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, 891, 593, -2614, 901, -2614, 867, -2614, -2614, -2614, + -2614, -2614, 52249, -2614, -2614, -2614, -2614, 348, 403, -2614, + -2614, -2614, 66, 893, -2614, 1374, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, 920, -2614, 3841, 867, -2614, -2614, + 1274, 67, -2614, 1282, 68, -2614, 1286, 1158, 11943, -2614, + 1042, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, 113, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, 368, -2614, -2614, 28932, + -2614, -2614, 588, 954, -2614, -2614, 28932, 12442, 51331, 1435, + -2614, 1254, 44236, 994, -2614, -2614, -2614, -2614, -2614, -2614, + 985, 1480, 87, 1488, 11943, 1014, 87, 87, 1016, 1359, + -2614, -2614, -2614, 146, 1037, 1041, -2614, 148, 148, -2614, + 1047, 1049, -2614, 149, 1057, 1072, 1523, 1567, 96, 1092, + 1116, 593, 87, 11943, -2614, 1118, 148, 1123, 1135, 1145, + 1590, 1161, -2614, 1652, 1175, 91, 95, 1180, 1182, -2614, + 1210, -2614, 150, 11943, 11943, 11943, 1560, 11943, 7452, 40444, + 1699, -2614, 361, 1222, 949, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, 98, 5269, -2614, 1263, -2614, -2614, -2614, + 171, 11943, -2614, 1705, -31, -2614, 152, -2614, -2614, -2614, + 383, 1507, 1226, -2614, -2614, -2614, -2614, 167, 1628, 27984, + 28458, 40444, -2614, -2614, 361, -2614, -2614, -2614, -2614, -2614, + -2614, 452, -2614, 311, 30120, 496, 361, 574, 44236, 44236, + 1694, -2614, -2614, -2614, 540, -2614, -2614, -105, -105, 11943, + -105, 105, 42, 9448, 12941, 1568, 1452, 533, 76, 1570, + -2614, 1459, 614, 671, 11943, -2614, 1509, 35230, 40444, 48028, + 1367, 40444, 33334, 740, 744, 1248, 1330, 1251, -26, 1659, + -2614, 1249, -2614, 1335, 40444, 52249, 165, -2614, 1695, 165, + 165, 578, 1697, 1336, 218, 1495, -42, -155, 1249, 1279, + -2614, 35230, 175, 577, 1249, 40444, 1340, 775, 1249, 85, + 12442, 992, 1031, 241, 1082, 1091, 97, 12442, 1142, 1188, + 1296, 1328, 1361, 1406, 1502, 1594, 1623, 1638, 103, 1646, + 1648, 1650, 1653, 1664, 1666, 109, 1668, 123, 12442, 1672, + 1262, -2614, 30120, -64, -2614, -2614, 1674, 115, -2614, 26561, + 1255, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, 1346, 44236, 1304, + 336, 1612, 1670, 31438, 1269, 1624, -2614, 48502, 9947, 1729, + 40444, 1499, 1279, 1501, 1278, 1736, 758, -2614, -2614, -2614, + -2614, -2614, -2614, 1281, -2614, -2614, 11943, -2614, -2614, -2614, + 1770, -2614, 51331, 51331, 901, 901, -2614, -2614, 1746, 1376, + 1382, 1770, -2614, 1770, -2614, -2614, -2614, 51331, -2614, 44236, + 1305, 1309, 1770, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, 1770, + 1383, -2614, 1391, 1393, 1394, -2614, -2614, -2614, -2614, -2614, + 44236, 44236, -2614, 44236, 44236, -2614, 44236, 44236, 565, 42340, + 588, 36178, -2614, -2614, -2614, -2614, 705, 769, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, 31438, -2614, 1781, + -2614, -2614, 1312, -2614, 592, -2614, 622, -98, -2614, -2614, + 11943, 361, 11943, 30120, 1362, 11943, 11943, 1322, 1770, 1770, + -2614, 2562, 1770, 1770, 30454, 11943, 25529, 11943, 16434, 10446, + 11943, 11943, 7951, 11943, 30454, 1806, 1806, 23626, -2614, 1481, + 1325, 1331, 1916, 5511, 1329, -2614, 555, -2614, 1323, -2614, + 361, 361, 11943, -2614, 11943, 4223, 4223, -2614, 129, 51331, + 11943, 11943, 11943, 11943, 30964, 1418, 138, 44236, 11943, 11943, + 1337, 980, -2614, 11943, 1556, -2614, 1339, 11943, 1421, 157, + 11943, 11943, 11943, 11943, 11943, 11943, 11943, 11943, 11943, -2614, + -2614, 17917, 161, 1658, 1677, 361, 11943, 214, 232, 11943, + 36652, 8949, 1675, 6454, -2614, 361, 27036, 86, 1675, -2614, + -2614, -2614, 154, -2614, -2614, -2614, -2614, -2614, 1312, -2614, + 1312, 1348, 40444, 207, 34756, -2614, 11943, -2614, 628, 1351, + -2614, 1633, -2614, 1343, -2614, 29402, 1633, -2614, -2614, 16919, + 1471, 1627, 1564, -2614, -2614, 1544, 1545, -2614, 1355, 30353, + 13440, 13440, -2614, 937, 30120, 1338, -2614, -2614, -2614, -2614, + -2614, -2614, 9, -2614, 40444, 6, 1568, 76, 650, -2614, + 1422, 1825, 1024, 44236, -2614, 24101, 1035, 1369, 48976, 44236, + 1643, 1596, 1647, -151, 51331, -2614, -2614, -2614, -2614, 44236, + 44236, 49450, 49924, 31912, 44236, 31438, -2614, -2614, -2614, -2614, + 44236, 856, 44236, 26184, -2614, -2614, -2614, 165, -2614, -2614, + -2614, -2614, -2614, 44236, 44236, -2614, -2614, 165, 44236, 44236, + 165, -2614, 1074, 44236, 44236, 44236, 44236, 1100, 44236, 44236, + -53, -53, 1577, -2614, 10945, 110, -2614, 11943, 11943, -2614, + 11943, 1547, -2614, -2614, 685, 1588, 56, 1423, 40444, 40444, + 44236, 1409, -2614, -2614, -2614, -2614, -2614, -2614, 31438, 1377, + 1604, -2614, 1592, -2614, -2614, 690, 11943, 1384, 1728, -2614, + 1279, 1730, 33808, 633, 1089, 1426, 11943, 699, 1388, 66, + 714, -2614, -2614, 1395, 1309, 1408, 1411, 1396, 1399, -2614, + 720, 51331, 1770, 106, 1400, 1401, 1442, 703, 841, 1349, + 67, -2614, 68, -2614, 1602, 119, -2614, 1620, 758, 1853, + -2614, -2614, -2614, -2614, -2614, -2614, 20776, -2614, 724, -2614, + -2614, 1860, 949, 1860, 507, -2614, -2614, 1860, -2614, 1860, + -2614, 28932, -2614, 12442, -2614, 51331, -2614, 726, -2614, 1405, + 11943, 52, -2614, 29468, 746, 11943, 1404, 1410, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, 1413, 1731, -2614, + 1414, 1416, 4901, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, 1417, 1420, 29551, + 1419, 16434, 16434, 7452, 1067, -2614, 16434, 1427, -2614, -2614, + 768, 29420, 1325, 1428, 29730, 11444, 11943, 11444, 11444, 29794, + 1325, 1429, 29961, 44236, -2614, 13939, -2614, -2614, -2614, 11943, + 40444, -2614, 11943, 773, 5773, -2614, -2614, -2614, 3120, 3120, + 3120, 30454, -2614, -2614, -2614, 1424, -2614, 16434, 16434, -2614, + 4202, 2072, 7452, -2614, -2614, 1735, -2614, 961, -2614, 1412, + -2614, -2614, 2714, -2614, 25529, 30314, 11943, 139, -2614, 11943, + 1337, 11943, 1504, 3120, 3120, 3120, 176, 176, 108, 108, + 108, 750, 232, -2614, -2614, -2614, 1432, 1433, 1438, 1639, + 30120, 1161, 11943, -2614, 30120, 707, 790, 40444, 3344, 3683, + 3876, -2614, -2614, -2614, 19351, 1476, -64, 1560, 1476, 1770, + 4223, -2614, 540, -2614, -2614, -2614, 30120, -2614, -98, 11943, + -2614, -2614, 1133, 1455, 1651, 1655, 824, 824, 937, 1656, + -2614, -2614, 1503, -2614, -2614, -2614, 11943, 8450, 1347, -2614, + 1360, -2614, -2614, -2614, -2614, 1439, -2614, -2614, 1702, -2614, + -2614, -2614, -2614, 19351, 1490, 44236, 1508, 323, 22201, -2614, + 1661, -2614, 44236, -2614, -2614, -10, 1464, 1539, 1249, 11943, + 1685, -2614, 99, 1461, 1809, -132, 1763, 44236, -2614, 1678, + -2614, 681, 1812, 119, 1816, 119, 31438, 31438, 31438, -2614, + 803, -2614, -2614, 949, -2614, 264, 805, -2614, -2614, -2614, + -2614, 1555, 794, 1249, 1279, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, 182, 799, 1249, 1557, -2614, 1575, -2614, 1576, + 801, 1249, -2614, -2614, 110, 110, 110, 12442, -2614, 1693, + 1714, 1498, 30120, 30120, 30120, 1505, -2614, 135, -2614, 44236, + -2614, -2614, -2614, 1547, 40444, 1500, 758, -2614, 752, -2614, + 949, 1844, 40444, -2614, 30120, 44236, 40444, 40444, 40444, 51331, + -2614, -2614, -2614, 1513, 1511, -2614, -61, 1717, 1716, 44236, + 1546, 1251, 1973, 817, -2614, -2614, -2614, -2614, 1770, -2614, + -2614, 215, 215, -2614, 44236, -2614, 1518, -2614, 1519, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + 44236, -2614, 1862, -98, -2614, 34282, -2614, -2614, -2614, -2614, + 31438, -2614, 949, -2614, 949, 1742, 44236, 27510, 949, 949, + -2614, -2614, -2614, -2614, 30075, 11943, -2614, 1876, 51331, -2614, + 5936, -2614, -2614, -2614, 11943, -2614, -2614, 11943, -2614, 25529, + 11943, 1851, -2614, 2010, 2010, 5511, 51331, 16434, 16434, 16434, + 16434, 530, 1123, 16434, 16434, 16434, 16434, 16434, 16434, 16434, + 16434, 16434, 17418, 265, -2614, -2614, 11943, 11943, 1859, 1851, + -2614, 51331, 1530, 1325, 1533, 1537, 11943, -2614, 51331, 842, + 7452, 30036, -2614, 361, 26011, -2614, 30120, -2614, 4223, 11943, + 2560, 3746, 11943, 854, 11943, 1864, -2614, -2614, 1540, -2614, + -2614, 51331, 11943, 1542, 3530, 16434, 16434, 4347, -2614, 4596, + 11943, 7452, -2614, 1577, 1585, 24576, -2614, 1637, 1637, 1637, + 1637, -2614, -2614, 40444, 40444, 40444, 19826, 1871, 18876, 42814, + 1543, 1169, -2614, 42814, 43288, -2614, 1562, -2614, 361, 11943, + 1865, 110, 1481, 1865, 1549, -2614, -2614, 1550, -2614, 1553, + -2614, 1455, 117, -2614, -2614, -2614, 1764, -2614, -2614, -2614, + 40444, -2614, 1543, 11943, 1703, -2614, -2614, -2614, -2614, 1610, + -2614, -2614, 859, 1969, 1703, 885, -2614, 361, 24101, 1490, + 11943, 44236, 26029, 1905, -2614, 44236, 44236, 44236, -2614, 44236, + 899, 589, 1566, -2614, 589, 1885, 178, 1251, 218, 3249, + -29, -2614, -2614, -2614, 1641, 44236, -2614, 44236, -2614, -2614, + -2614, -2614, -2614, 31912, -2614, -2614, 25054, 31438, -2614, 31438, + 44236, 44236, 44236, 44236, 44236, 44236, 44236, 44236, 44236, 44236, + 1571, 1572, 1573, 1577, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -155, -2614, 135, 1578, 33808, 1426, 1670, 43762, -2614, + 1574, 1563, 44236, 1636, 907, 1279, 1580, 2033, -2614, 633, + 33808, -2614, -2614, -2614, 1996, -2614, 451, 162, -2614, -2614, + -98, -2614, 1309, 1584, -2614, -2614, 1309, 51331, -2614, -2614, + 119, 40444, -2614, 908, -2614, -2614, -2614, -2614, 44236, 1587, + -2614, 1587, -2614, -2614, 11943, 30120, -2614, 1583, -2614, 30120, + 26058, -2614, 30120, 1859, -2614, 423, 423, 423, 1901, 1914, + 525, 1593, 423, 423, 423, 189, 189, 131, 131, 131, + 2010, 265, 30120, 30120, -2614, -2614, 1597, -2614, -2614, -2614, + 1325, 1599, -2614, 5421, -2614, 909, 44236, -2614, -2614, 306, + 11943, 11943, 4202, -2614, 30493, 11943, 51331, 917, 4202, 163, + 11943, 4275, 4922, 11943, 11943, 4883, 26077, 1600, 11943, 50398, + -2614, -2614, 40444, 40444, 40444, 40444, -2614, -2614, -2614, 42814, + 43288, 1603, 18400, 1169, 1601, 40444, -2614, 1698, 1607, 19351, + 1883, 1811, -2614, 19351, 1811, 823, 1811, 1887, 1698, 23151, + -2614, 1698, 1614, 1818, -2614, 545, 30120, 2055, 1929, 1617, + -2614, 1929, 949, -2614, 25529, -2614, -2614, -2614, -2614, -2614, + 30120, 8949, -2614, -98, 361, 1247, 44236, -70, -2614, 1640, + 44236, -2614, 1703, 30120, -2614, -2614, 44236, 936, -2614, 959, + 589, -2614, 1669, -2614, 553, 1920, 50, -2614, 31438, 2158, + 271, -2614, 1936, 1852, -2614, 165, -2614, 11943, 271, 1854, + 126, 44236, -2614, -2614, 1824, -2614, 51331, 119, 119, -2614, + 1631, 1644, 1649, 1654, 1657, 1660, 1662, 1663, 1676, 1680, + 1681, 1682, 1683, 1686, 1687, 1688, 1689, 891, 1690, -2614, + 1692, 1553, 1696, 1704, 1709, 51790, 1711, 1712, 1713, 1719, + 1721, 705, 769, -2614, -2614, -2614, 789, -2614, -2614, -2614, + 1722, -2614, 1707, -2614, -2614, -2614, 1720, -2614, 1723, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, 110, 954, 70, + 44236, 1673, 2095, 1866, 1645, -2614, 949, 1863, 44236, 1671, + 1426, -2614, 33808, 1131, 546, 1716, -2614, 317, 1546, -2614, + 2035, 1701, -2614, -2614, -2614, 2114, -2614, 34282, 1587, 30120, + -2614, -2614, -2614, 16434, 1983, 1679, 51331, -2614, -2614, -2614, + 11943, -2614, 4202, 4202, 30493, 963, -2614, 4202, 11943, 11943, + 4202, 4202, 11943, -2614, -2614, 26160, 1861, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, 32386, 42814, 1700, -2614, 37126, -2614, + -2614, 44236, 1169, 19351, -2614, -2614, 71, -2614, 19351, 1935, + -2614, 19351, -2614, 44236, 1718, -2614, 44236, -2614, 14438, 11943, + 1726, 949, 1726, -2614, 1715, 1226, -2614, 323, -2614, -2614, + 2084, 20301, 2061, 11943, -2614, -2614, 589, -2614, 1880, 1669, + 1727, -2614, -2614, -2614, -2614, -2614, -2614, -2614, 965, 1733, + 44236, 44236, 16434, -2614, 271, 570, 246, -2614, 1974, 40444, + 1669, 2116, -2614, -2614, -2614, -2614, 2083, 2183, 2071, -2614, + -2614, 30120, -2614, -2614, 1770, 1770, -2614, -2614, 2150, -2614, + -2614, -2614, -2614, 789, 385, 25054, 44236, 44236, 1740, -2614, + -2614, -155, 2107, 967, 633, -98, 2080, 33808, -2614, 40444, + -2614, -2614, 20301, 2202, 1745, 44236, 1546, 990, 990, -2614, + 1886, -2614, 1892, -2614, -2614, 225, -2614, -98, -2614, 2495, + 16434, 51331, 973, -2614, -2614, 4202, 4202, 4202, -2614, 2193, + 1577, -2614, 983, 2212, -2614, 44236, -52, -59, 1756, 1759, + -2614, -2614, 997, -2614, 11943, 1760, -2614, -2614, 19351, 71, + 1003, -2614, 51331, 44236, 1004, 51331, 1762, -63, 1765, 6953, + 1774, -2614, -2614, -2614, -2614, -2614, 30120, 30120, 44236, 1934, + -2614, 1934, -2614, 1835, 44236, 11943, 2206, 40, -2614, 1017, + -37, 30120, 40444, -2614, 31438, -2614, 589, -2614, 31438, 11943, + -2614, 94, 1901, 2244, -2614, -2614, -2614, -2614, 1669, 758, + -2614, 44236, -2614, 2097, -2614, 44236, 1848, 395, 1867, -2614, + -2614, -2614, -2614, 954, 949, 1426, 1716, 1701, 40444, 1636, + 1027, -98, 633, 451, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -2614, -2614, 2219, 2001, 2221, + 2495, 1029, -2614, 11943, -23, 1562, 32386, 1796, -2614, 1044, + -2614, -2614, -2614, -2614, -2614, 44236, 889, -2614, 30120, 44236, + -2614, -2614, -2614, 44236, 2150, 1073, -2614, 11943, 1798, 11943, + -2614, 14438, 1797, -2614, 2257, 11943, 1869, 1869, -98, -2614, + 26178, 44236, 44236, 44236, 1476, 20301, -2614, 1926, 758, 589, + 1817, 1077, -2614, -2614, 26403, 2027, -2614, 2115, -2614, 2062, + -2614, 1821, -2614, 11943, -2614, 1888, -2614, -2614, -2614, 2274, + -2614, -2614, 1822, 1823, 1426, 1701, 1716, 1546, 2031, -2614, + 2032, -2614, 1325, 14937, 14937, 1826, -2614, -2614, 44236, -2614, + 1084, 1827, 1093, -2614, -2614, -2614, 1097, 14438, 1102, -2614, + 44236, 1829, 30120, 1967, -2614, -2614, -2614, 2206, -2614, -2614, + 234, 234, -2614, -2614, 24101, 2062, 25054, -2614, 31438, 2058, + 1821, 64, 2042, 1279, -2614, 30120, -2614, -98, 33808, 20301, + 1476, -2614, -2614, -2614, -2614, -2614, 15935, 1975, 245, 29449, + -2614, -2614, -2614, -2614, 1106, -2614, 2317, 1988, -2614, -2614, + 1107, -2614, -2614, -2614, 37126, 44236, 1455, 1455, -99, 2042, + -2614, -2614, 2130, -2614, -2614, -2614, -2614, -2614, 127, 2054, + -2614, 2056, 861, 1701, 1108, -2614, 2305, -2614, -2614, -2614, + -2614, -2614, -2614, 1846, 1849, -2614, -2614, -2614, 234, -2614, + -2614, -2614, -2614, -2614, 402, 402, 2223, -2614, 1907, -2614, + -2614, -2614, 1426, 15436, -2614, 2337, 1455, 589, -2614, 2326, + -2614, 136, -2614, -2614, 1476, -2614, 1855, -2614, -2614, -2614, + -2614, -2614, -2614 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -2605, -2605, -2605, 1828, -2605, -2605, -2605, 309, -2605, 990, - -2605, 297, -568, 631, -2605, -2605, -2605, -2605, -2605, -2605, - -433, -2605, -474, -469, -2605, -2605, 1, -772, 1212, -2605, - -2605, 61, 1073, 11, -2605, -2605, -2605, -2605, 105, 353, - -2605, -354, -1872, -96, -2605, -2457, -2549, -2605, -420, -2403, - -1678, -2605, -915, -2605, -620, -966, -775, -978, -2605, 72, - -1107, -1780, -2352, -424, -2605, -497, -2605, -249, -1766, -462, - -449, -2605, -2357, -930, -2605, 1505, -156, -2605, 667, -2605, - -2114, -2605, -2605, 658, -2605, -947, -2605, -2605, -1837, 290, - -395, -2312, -2106, 613, -632, -2605, -443, 339, -1726, -2605, - 686, -2605, -382, -2605, -487, -2130, -1105, 314, -2605, -2605, - 795, -2605, -2605, -2605, -1104, -2605, -263, -2605, -2605, -2097, - -2605, 70, -2341, -1184, -2605, -2605, 1148, -1101, -2485, -2605, - 1126, -2605, -2605, -2605, -2605, -2605, 401, -2605, 917, -2605, - 803, -2605, -2605, -2605, -2605, -2605, -553, 627, -2279, -2605, - 567, -2605, -2605, -2605, -2605, 26, 328, -2605, -2605, -2605, - -2605, -2605, -2605, -2605, -1168, 22, 35, 136, -22, -24, - -14, 7, 39, 1565, 1595, -2605, -1260, 670, -2605, -2605, - -1759, -605, -68, -2605, 743, -2557, -2013, -459, 1086, 1548, - 1552, -265, -178, -2605, -343, -2605, -1480, -2605, -2605, 740, - 1128, -1284, -1264, -2605, 448, -330, -261, -2605, -2605, -2605, - -2605, -2605, 197, -450, 1108, -2605, 1568, -2605, -2605, -2605, - -2605, -1257, 786, -1974, 478, -1953, -1844, 241, 224, -994, - -127, 14, 487, -218, -2605, -2605, -216, -1687, -2304, -233, - -231, -2605, -2605, -511, -1122, -689, -2605, -2605, 558, 1904, - -2605, -2605, -2605, 2079, 2084, -2605, -2605, 2213, 2696, -2605, - -583, 2950, 1862, -666, 1283, -1041, 1286, -1086, -862, -1082, - 1288, 1289, -1241, 3274, -1559, -796, -5, -2605, -2353, -1415, - -2605, -2605, 19, -2605, -298, -2605, -297, -2605, -2605, -2605, - -281, -2604, -2605, 1224, 907, -2605, -2605, -1227, -2605, 4042, - 806, -2605, -1620, -579, 1306, -718, -977, -1134, -2605, -2605, - -2605, -2605, -2605, -2605, -1213, -1775, -606, 873, -2605, -2605, - 984, -2605, -2605, 118, -588, 1087, -565, -840, 881, -2605, - -549, 1225, -2605, 843, -1917, -2605, 509, -2605, 970, -525, - 1765, -1010, 24, -2605, -519, -1, 1676, -846, -2080, -2605, - -2605, -489, -2195, -891, -2605, -621, -2605, 32, 1646, 499, - -2605, -2605, 708, -2605, -2605, -2605, -2605, 1376, -706, -2605, - 1431, -2605, -2605, -2605, -2605, -2104, -6, -2605, -2605, -2605, - -523, -2605, -2070 + -2614, -2614, -2614, 1754, -2614, -2614, -2614, 1138, -704, -2614, + 1181, -2614, -442, -2614, -468, -465, -2614, -2614, 19, -781, + 1124, -2614, 22, 479, -35, 24, 35, 7, 45, 1430, + 1449, -2614, -1236, 523, -2614, -2614, -1780, -605, -38, -2614, + 612, -2582, -2025, -429, 947, 1415, 1436, -407, -427, -2614, + -541, -2614, -1143, -2614, -2614, 608, 986, -1260, -1241, -2614, + 304, -479, -412, -2614, -2614, -2614, -2614, -2614, 60, -298, + -424, 979, -2614, 1441, -2614, -2614, -2614, -2614, -1164, 618, + -1981, 339, -1960, -1842, 102, 88, -1059, -264, 20, 350, + -358, -2614, -2614, -352, -1696, -2295, -369, -368, -2614, -2614, + -513, -1118, -688, -2614, -2614, 333, -439, -2614, -2614, -2614, + 647, 719, -2614, -2614, 942, 1978, -2614, -582, 2138, -472, + -682, 1144, -1045, 1149, -1086, -1075, -1078, 1150, 1151, -1242, + 3395, 1270, 1493, 0, -2614, -2350, -1665, -2614, -2614, -119, + -2614, -436, -2614, -434, -2614, -2614, -2614, -419, -2613, -2614, + 1081, 772, -2614, -2614, -1247, -2614, 3587, 677, -2614, -1621, + -282, 1168, -723, -976, -1142, -2614, -2614, -2614, -2614, -2614, + -2614, -1272, -1756, -598, 733, -2614, -2614, 843, -2614, -2614, + -1060, -615, 945, -563, -848, 739, -2614, -556, 1087, -2614, + 704, -1922, -2614, 370, -2614, 2308, -525, 1635, -1009, 41, + -2614, -787, 293, 1767, -854, -2093, -2614, -2614, -482, -2195, + -889, -2614, -586, -2614, -2614, -2614, -2614, -1104, -2614, -299, + -2614, -2614, -2108, -2614, -2614, 1444, 28, -2614, -2614, -2614, + 313, -2614, 993, -2614, 303, -476, 634, -2614, -2614, -2614, + -2614, -2614, 1075, -2614, -2614, -2614, -2614, -2614, -2614, -2614, + -2614, -2614, -2614, -2614, -2614, -542, 579, -2275, -2614, 510, + -2614, -2614, -2614, -2614, -24, 278, -2614, -2614, 596, -2614, + 873, -2614, 798, -2614, -2614, 32, 1489, 346, -2614, -2614, + -909, 59, -2316, -1192, -1103, -2509, -2614, 580, -2614, -1098, + 273, -2614, -2614, 288, -2614, -2614, -1175, -2614, -611, -980, + -778, -994, -2614, 79, 1088, -2614, 58, 36, -2614, -2614, + -2614, -2614, 114, 353, -2614, -342, -1889, -83, -2614, -2478, + -2134, -2614, -409, -2406, -1714, -2614, -2115, -2614, -2614, -2614, + -1097, -1769, -2401, -413, -2614, -487, -2614, -241, -1768, -459, + -446, -2614, -2334, -937, -2614, 1506, -153, -2614, 674, -2614, + -2118, -2614, -2614, 659, -2614, -948, -2614, -2614, -1796, 292, + -392, -2300, -2117, 619, -634, -2614, -438, 338, -1740, -2614, + 692, -2614, -380, -2614, -499, -2155, -2614, -6, -2614, -2614, + -2614, -520, -2614, -2089 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1725 +#define YYTABLE_NINF -1727 static const yytype_int16 yytable[] = { - 477, 473, 999, 646, 734, 1138, 613, 76, 1131, 935, - 968, 49, 801, 1177, 595, 713, 912, 537, 924, 549, - 549, 1470, 70, 76, 1241, 1434, 1221, 1240, 1224, 2123, - 474, 1469, 78, 1297, 1501, 71, 1502, 1503, 1529, 731, - 1504, 1299, 1183, 1135, 1557, 581, 740, 1445, 1625, 2138, - 2072, 2140, 615, 1379, 998, 1533, 1004, 1344, 1008, 1441, - 741, 1481, 616, 1664, 1665, 577, 795, 2429, 2450, 1354, - 59, 1972, 1973, 2032, 593, 2464, 1992, 2431, 2451, 2091, - 2119, 2460, 551, 2302, 1163, 1164, 2348, 1474, 1585, 1253, - -1154, 607, 2263, -789, 2159, 2160, 2161, -1154, -797, 818, - 1737, -529, -1611, 624, 802, -1151, -1151, 2626, -1129, 481, - 2319, 1175, 547, -1600, 2802, -797, -532, 2019, 2020, 2622, - -1611, -1703, -1703, 1784, 1215, -1618, -1618, -794, -1714, -1714, - -1155, -794, 1506, -1721, -1721, 1215, 72, 547, -1152, -1152, - 533, 818, 1361, -1155, -1600, 1787, -756, -1723, -1723, -769, - 1733, -784, 72, 961, 2181, 1139, 547, 547, -1011, 1227, - 2652, 925, 964, 1157, 1411, -1011, 72, 585, 2608, 1675, - 1675, 1308, 594, 1358, 1231, 547, 1231, 818, 608, 818, - 1308, 818, 1975, 1696, 1601, 2564, 1712, 1437, 1603, 3, - 4, 1426, 72, 1713, -529, 1954, 2696, 1349, 1472, -207, - 1183, 1314, 918, 1345, -207, 2742, -1030, 1158, 1215, -532, - 1314, 1454, 614, -1030, 1457, 1458, 2341, -474, 2317, 2218, - 2220, 2769, 2253, 2191, 1215, 2921, 485, 2771, 1396, 1599, - 2548, 2673, 2758, 1316, 2603, 610, 2362, 2949, 1396, 1437, - 2804, 1870, 1316, 1163, 1164, 609, 2702, 2591, 610, 2805, - 2151, 2830, 2728, 544, 1720, 2869, 2743, 2627, 2787, 2715, - 2754, 1790, 1858, 600, 657, 2744, 562, 2719, 2755, 1175, - 1975, 2310, 2628, 2934, 1397, 2772, 801, 1308, 951, 2740, - 1243, 2360, 2696, 801, 1397, 1359, 486, 1243, 2932, 1429, - 2461, 2561, 1479, 1308, 2745, 1805, 1453, 1975, 1289, 1480, - 2713, 1805, 1763, 2624, 2974, 2311, 957, 1314, 1697, 2349, - 2912, 2328, 2913, 543, 2081, 2068, 2127, 1300, 2066, 628, - 2363, 2527, 610, 629, 1698, 926, 2483, 927, 1245, 1699, - 2313, 83, 1464, 2066, 2521, 2602, 1135, 2359, 2525, 1316, - 546, 2842, 2584, 1398, 2383, 1356, 2319, 2885, 2230, 2082, - 601, 2625, 1806, 2621, 2970, 1316, 1465, 2922, 2116, 2618, - 2092, 2468, 2943, 2562, 2746, 1700, 2585, 1791, 2784, 563, - 2843, 1356, 2714, 2350, 1304, 84, 2747, -650, 2829, 959, - 1159, 952, 1399, 685, -529, 2364, 2961, 2365, 2356, 1764, - 2358, 1424, 1399, 545, 1721, 588, 801, 801, 1243, -532, - 1243, 1243, 2963, 2770, 1360, 2817, 2911, 2726, 1602, 2773, - 1216, 26, 2652, 2806, 1377, 2716, 1859, 2234, 2235, 2236, - 2237, 1216, 2935, 2241, 2242, 2243, 2244, 2245, 2246, 2247, - 2248, 2249, 2250, 2923, 1444, 2756, 1523, 596, 1484, 2549, - 1431, 1400, 1483, 2712, 2956, 919, -529, 31, 2696, 2462, - 2315, 1400, 2629, 2826, 2511, 1582, 490, 2481, 491, 1921, - 611, -532, 2975, 1923, 1925, 1926, 1625, 1243, 2053, 2054, - 1243, 1243, 597, 2553, 2484, 2280, 2281, 2887, 2092, 1350, - 1800, 1634, 1346, 494, 1871, 1160, 1784, 2930, 33, 76, - 586, 2477, 2886, 632, 1216, 2167, 2168, 1878, 2074, 2735, - 1373, 34, 2093, 1920, 634, 2565, 1857, 2104, 1589, 1422, - 1216, 1701, -1011, 595, 636, 920, 1308, 635, 1423, 1517, - 728, 1131, 2917, 1473, 2429, 35, 1676, 2034, 812, 800, - 2609, 628, 1161, 1470, 2431, 629, 797, 2696, 2098, 36, - 1714, 76, 803, 2900, 549, 805, 1314, 969, 2662, 1178, - 2950, 482, 1432, 2666, 615, -529, 2668, 658, 477, 477, - -1030, 2653, 1217, 617, 616, 2748, 1178, 915, 2749, 642, - -532, 1179, 2642, 1220, 2555, 2152, 602, -1154, 1316, 2076, - -789, 1916, 477, 627, -1154, 1180, 1526, 929, 1179, -1611, - 1530, 1531, 1446, 628, -529, -1129, -529, 629, 2370, 1773, - -1600, 2566, 1182, 928, 76, 1857, 804, -1611, 49, -532, - 2964, -532, -1618, -1618, -794, 1393, 947, -1155, 72, 70, - 598, 1047, 477, 1132, 1303, 1567, 1282, 2834, 937, 78, - -1155, -1600, 71, 1165, 1735, 2833, 1169, 2828, -784, 86, - 2066, 651, 2066, 1352, 1738, 1334, 1335, 1336, 1337, 1464, - 1527, 2593, 2594, 1235, 1236, 1235, 1236, 1337, 655, 1990, - 713, 1536, 1223, 1537, 1496, 2552, 1459, 59, 1542, 2371, - 72, 594, 1587, 1465, 3, 4, -1700, -1700, -207, -207, - 1586, 1834, 1289, 1922, 1924, 1543, 1593, 2607, 2965, 957, - 957, 1837, 1672, 2779, 1840, 958, 728, 1551, 2183, 1639, - 1641, 628, 1649, 1446, 656, 1355, 1548, 801, 2147, 1468, - 1446, 1587, 1135, 1446, 614, 2966, 1562, 1564, 1178, 1446, - 1394, 2148, 1662, 2612, 1944, 2238, 1300, 2554, 1178, 1945, - 731, 1550, 477, 72, 1131, 1497, 533, 1554, 1561, 659, - 1179, 1625, 2891, 818, 1987, 1988, 1989, 1990, 1595, 1596, - 1179, 2372, 1609, 1610, 1180, 1559, 1587, 2232, 660, 1178, - -578, 795, 959, 959, 1182, -578, 1587, 647, 1135, 1985, - 1986, 1987, 1988, 1989, 1990, 638, 2267, 639, 2621, 1946, - 2705, 1179, 1498, 1447, 2201, 2254, 2291, 2292, 2293, 2294, - 2205, 1563, 1938, 800, 2429, 1937, 818, 1666, 1244, 87, - 800, 1047, 728, 648, 2431, 1244, 1460, 88, 640, 76, - 641, 960, 960, 1297, 1461, 972, 738, 2012, 477, 557, - 1475, 973, 1905, 1826, 2727, 576, 1266, 1678, 547, 26, - 1478, 1507, 1833, -578, 1634, 1634, 2150, 2531, 649, 1634, - 2534, 806, 89, 1927, 1444, 1928, 1750, 477, 1930, 2309, - 2075, 606, 807, 1437, 2824, 1470, 595, 1797, 1188, 1189, - 2969, 1507, 808, 2239, 1438, 31, 1437, 477, 477, 477, - 810, 477, 477, 2240, 1853, 1854, 1855, 1440, 811, 2162, - 1634, 1634, -578, 1302, 1832, 650, 1131, 1783, 1783, 90, - 812, 1446, 1305, 2066, 1447, 477, 2276, 2066, 813, 2944, - 2945, 1447, 2102, 1843, 1447, 1353, 33, 818, 1850, 1659, - 1447, 1660, 2655, 800, 800, 647, 1364, 2656, 1244, 1244, - 2098, 2095, 2808, 2638, 2310, 1808, 2153, 974, 1229, 1387, - 1388, 1230, 1392, 1190, 1191, 1173, 1174, 1243, 72, 616, - 616, 2812, 616, 608, 1196, 1197, 1902, 1243, 2972, 477, - 1243, 648, 917, 477, 477, 1444, -579, 36, 2311, 947, - 923, -579, 1444, 2192, 477, 1444, 2196, 913, 914, 2124, - 916, 1444, 817, 1835, 2312, 1975, 1269, 932, 1838, 728, - -1725, -1725, -1725, 2313, 1371, 938, 2177, 1372, 1332, 1333, - 1334, 1335, 1336, 1337, 1893, 939, 1894, 1192, 1193, 1194, - 1195, 1196, 1197, 941, 1047, 1198, 1199, 26, 2154, 942, - 609, 1047, 2711, 1877, 1291, 1471, 628, 2314, -1129, 1943, - 629, 1915, 1917, 1947, 945, 1948, 2474, 1751, 1914, -579, - 946, 1374, 1047, 650, 1375, 950, 1190, 1191, 2001, 1555, - 2003, 2004, 1375, 31, 801, 972, 972, 1581, 1243, 949, - 1582, 973, 973, 1200, 1201, 970, 619, 801, 622, 1583, - 626, 1243, 1584, -1698, -1698, 1649, 2002, 1649, 1649, 1501, - 971, 1502, 1503, 1950, 1746, 1504, 983, 1223, -579, 975, - 2759, 2125, 1447, 1795, 33, 955, 1375, 610, 534, 614, - 614, 1867, 614, 972, 1868, 26, 1136, 34, 2066, 973, - 984, 1446, 2022, 2315, 1196, 1197, 2135, 2066, 2137, 1001, - 1200, 1201, 2066, 2864, 817, 2066, 1900, 1975, 1005, 1582, - 1625, 35, 1976, 1977, 1978, -1699, -1699, 2008, 1883, 817, - 2070, 31, 1975, 977, 2066, 535, 1132, 1976, 1977, 1978, - 2046, 2494, 2047, 1444, 1137, 972, 1903, 1140, 1047, 1375, - 2381, 973, 1906, 91, 2269, 1584, 480, 974, 974, 477, - 1142, 2374, 531, 978, 2212, 728, 728, 2962, 2357, -1701, - -1701, 1912, 33, 561, 1913, 1933, 1951, 574, 1934, 1375, - 1634, 1634, 1634, 1634, 1145, 34, 1634, 1634, 1634, 1634, - 1634, 1634, 1634, 1634, 1634, 1634, 2373, -541, 2382, 1958, - -1702, -1702, 1375, 2447, 2931, 974, 972, 985, 1144, 35, - -541, 728, 973, 1200, 1201, -541, -1704, -1704, 2158, 2073, - 2066, 1202, 1203, 1752, 800, 611, 986, 2946, -1705, -1705, - 979, 797, 1167, 975, 1994, 2024, 76, 1375, 1634, 1634, - 1132, 1204, 1152, 2175, 2203, 2204, 2339, -1706, -1706, 1981, - 2103, 2103, 2066, 477, 1176, 477, 1154, 974, 477, 477, - 1156, 2025, 2016, 76, -541, 1375, 1161, 632, 477, 1608, - 477, 477, 477, 477, 477, 477, 477, 987, 634, 954, - 1165, 956, 2976, -541, 1214, -1707, -1707, 2126, 636, 2127, - 2141, 635, 1447, 2142, 2048, 477, 2049, 477, 2145, 2568, - 1979, 2146, 728, 477, 477, 477, 477, 1132, 1168, 975, - 975, 477, 477, 1567, -1708, -1708, 477, 2128, 974, 2526, - 477, 2529, 1980, 477, 477, 477, 477, 477, 477, 477, - 477, 477, -541, 2200, 477, 2261, 1375, 1980, 1223, 477, - 1169, -541, 477, 26, 477, 1171, 1047, 2571, 1185, 1132, - 2066, 2641, 2272, 1444, 1172, 1375, 1184, 975, 2337, 976, - 1002, 2338, 1739, 977, 977, 72, 1187, 988, 2342, 477, - 1219, 2343, 2423, 929, -1709, -1709, 1222, 2098, 2026, 31, - 1225, 1808, 2361, 2027, 2456, 1868, 2066, 1868, 2202, 477, - 1226, 1981, 72, 978, 1003, 1637, 1167, -1710, -1710, 2475, - 477, 477, 2476, 1228, 2573, 2381, 1981, 1006, 2556, 975, - 1246, 977, 2488, 801, 1176, 2489, 1754, 989, 2495, 2557, - 33, 1584, 1868, 1256, 1587, 990, 2259, 1257, 2558, 2643, - 728, 1868, 1584, 34, -1711, -1711, 1132, 991, 1132, 1259, - 2209, 1007, 1261, -1725, -1725, -1725, 2226, 1985, 1986, 1987, - 1988, 1989, 1990, 637, 2619, 1682, -760, 35, 2516, 1796, - 979, 979, 2706, 977, 2233, 2707, -767, 652, 992, 2545, - 975, 36, 2516, 2734, 1264, 2066, 1868, 1047, 1265, -541, - 477, 477, 2761, 477, 2764, 1584, 1266, 2765, 2776, 2255, - 1267, 1223, 2781, 978, 2785, 2782, 2260, 2782, -1712, -1712, - 2814, 1132, 2324, 2473, 1268, 2576, 2760, 1587, 979, 2800, - -1713, -1713, 2801, 1637, 994, 1684, 36, 72, 477, 477, - 1841, 1270, 972, 2028, 977, 1826, 2839, 2432, 973, 2801, - -1715, -1715, 2568, 728, 2029, -650, 995, 26, 2569, -757, - 2840, 1685, 628, 1584, 2848, 941, 629, 1223, 2577, 1884, - 922, 2570, 2854, -651, 1842, 2782, 997, 2446, -758, 2872, - 979, 800, 2873, 2578, 2901, 2904, 1244, 2902, 1223, 944, - 1942, -761, 2905, 31, 800, 1375, 1047, 1271, 728, 1244, - 2571, 2907, 2572, 477, 1375, 1982, 1983, 1984, 477, 1985, - 1986, 1987, 1988, 1989, 1990, 2938, -1716, -1716, 2782, 2589, - 1982, 1983, 1984, 1272, 1985, 1986, 1987, 1988, 1989, 1990, - 595, -759, 2942, 2957, 33, 2790, 2801, 1274, 1147, 1150, - 1151, 979, -1717, -1717, 477, 477, 477, 34, 1243, 477, - -1718, -1718, -1719, -1719, 974, 1275, 2426, 2573, 477, 477, - 477, 477, -1720, -1720, 2732, -1722, -1722, 2098, 477, 1276, - 72, 35, 477, 1686, 1277, 477, 1785, 1786, 1687, 595, - 2579, -1724, -1724, 1688, 2955, 36, 2574, 2580, 1278, 26, - 477, 477, 1486, 1487, 1279, 477, -628, -628, 1198, 1199, - 2598, 2599, 475, 1200, 1201, 1280, 1634, 504, 1281, 477, - 1286, 504, 477, 1282, 477, 2472, 550, 550, 552, 504, - 560, -632, -632, 560, 2212, 31, 560, 583, 1298, 817, - 504, 504, 1975, 1301, 26, 477, 1342, 1976, 1977, 1978, - -631, -631, 1367, 1369, 1348, 1349, 1177, 477, 2064, 1350, - 595, 1365, 560, 2575, 2270, 1385, 1135, 2309, 2576, 1378, - 958, 1386, 477, 2064, 960, 1418, 33, 1420, 1637, 1637, - 31, 1587, 1442, 1637, 76, 1443, 477, 474, 632, 34, - 1444, 1449, 583, 504, 583, 583, 583, 1450, 1291, 634, - 1451, 1455, 474, 477, 477, 1634, 503, 1462, 1463, 636, - 532, 2577, 635, 35, 485, 2543, 975, 1467, 553, 1477, - 1482, 33, 477, 1489, 1637, 1637, 2578, 36, 1500, 592, - 592, 1490, 1494, 1689, 34, 1499, 1507, -397, 1508, 1132, - 1132, 1132, 2310, 817, 1690, 1510, 1975, 1291, 1513, 1514, - 2144, 1976, 1977, 1978, 1515, 1524, 1525, 818, 35, 2423, - 1532, 1540, 1534, 1535, 1580, 1682, 1848, 1541, 2497, 1544, - 977, 1545, 36, 1634, 486, 1546, 2311, 1547, 1589, 1594, - 1047, 2041, 620, 1308, 1654, 1243, 1375, 1656, 1658, 1661, - 1243, 1674, 2312, 1681, 1692, 2170, 1693, 1695, 1716, 2058, - 1849, 2313, 1717, 1740, 2597, 1733, 1748, 1755, 2178, 609, - 1747, 1774, 1762, 72, 2058, 1775, 728, 1776, 594, 1777, - 1778, 1370, 1779, 2579, 1798, 1803, 610, 1802, 488, 1804, - 2580, 1865, 1562, 1564, 1869, 2314, 1873, 1879, 1880, 1881, - 1882, 1896, 1898, 1899, 1908, 1909, 1382, 1980, 1904, 1907, - 1910, 1929, 1931, 1932, 817, 1911, 2663, 1975, 1132, 1940, - 800, 1918, 1976, 1977, 1978, 1244, 1919, 979, 1952, 1960, - 2215, 1425, 2216, 1961, 1963, 2018, 2221, 2222, 477, 2498, - 1470, 728, 1968, 801, 1452, 1962, 817, 477, 2023, 1975, - 477, 1964, 2039, 477, 1976, 1977, 1978, 1884, 1965, 728, - 477, 477, 477, 477, 2286, 1476, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 1981, 595, 1967, 477, - 477, 2315, 2068, 1971, 728, 1993, 1999, 2006, 2030, 477, - 2040, 728, 2042, 477, 2044, 2043, 2078, 2087, 2080, 2100, - 2094, -633, 477, -634, 490, 477, 491, 477, 595, 2105, - 2106, 1980, 2108, 2109, 728, 477, 2110, 2114, 477, 477, - 2112, 2115, 2118, 477, 477, 595, 2121, 2149, 493, 2134, - 2136, 494, 2155, 2163, 2763, 2164, 2156, 2157, 2166, 477, - 2064, 477, 2064, 2165, 2174, 2186, 2189, 2190, 2193, 2197, - 2198, 2194, 477, 2207, 2208, 2210, 2217, 2225, 72, 1996, - 1975, 1995, 477, 2274, 1562, 1564, 2287, 2300, 2664, 474, - 2709, 474, 2811, 2256, 2275, 1243, 2818, 2257, 477, 2258, - 1981, 2278, 2051, 2426, 1637, 1637, 1637, 1637, 2308, 2423, - 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, - 817, 2322, 2326, 1975, 2331, 1509, 2334, 2332, 1976, 1977, - 1978, 2336, 2340, 2351, 2355, 2369, 2385, 2458, 2466, 2768, - 2443, 2347, 1980, 2367, 2482, 2444, 1132, 2469, 2445, 2449, - 1132, 2430, 1132, 2454, 2471, 1291, 2428, 2768, 2455, 2459, - 2517, 2522, 1637, 1637, 1868, 985, 2479, 2486, 2523, 583, - 2783, 2485, 2513, 2783, 1980, 644, 2487, 2503, 645, 2530, - 2520, 2170, 2535, 583, 986, 2871, 1291, 504, 2514, 2537, - 1982, 1983, 1984, 2841, 1985, 1986, 1987, 1988, 1989, 1990, - 2536, 2298, 2538, 2301, 2559, 2551, 2563, 2587, 1558, 2540, - 728, 1981, 2588, 2592, 645, 504, 504, 2855, 2605, 2857, - 1597, 2606, 547, -1151, -1698, -1699, -1700, 477, 2614, -1701, - -1702, 550, -1703, 2615, -1704, 987, -1705, -1706, -1707, 2623, - -1708, -1709, 2467, 1981, 2604, 2821, -1710, -1711, 1612, -1712, - 910, 910, 560, 560, -1713, 560, 1613, 1614, 1615, -1715, - -1716, -1717, 2811, 2851, 2632, -1718, 583, -1719, -1720, 2928, - -1721, -1722, 2613, 477, 477, 504, 654, -1723, 477, 728, - 2630, 2616, 2636, 477, -1724, 583, 477, 477, 583, -1152, - 2635, 477, 2639, 2640, 1982, 1983, 1984, 2648, 1985, 1986, - 1987, 1988, 1989, 1990, 2654, 737, 2667, 2687, 2672, 2698, - 2692, 2700, 477, 2064, 2701, 1568, 477, 2064, 2717, 2703, - 2720, 2708, 2721, 2866, 2722, 988, 1188, 1189, -1725, 1731, - 2723, 2724, 2731, 2733, 583, 583, 583, 2737, 477, 2738, - 2542, 2741, 474, 72, 2752, 2753, 474, 2762, 2766, 2774, - 2775, 1741, 2778, 1744, 2786, 2788, 2794, 2790, 2802, 2816, - 1569, 2820, 2797, 2822, 592, 1243, 2825, 2835, 2836, 2837, - 2847, 1132, 2856, 2426, 2860, 989, 2870, 2859, 2861, 2874, - 477, 2544, 2546, 990, 2716, 2876, 1570, 2877, 2879, 728, - 2882, 2883, 2888, 2884, 2889, 991, 2890, 1981, 725, 2899, - 1789, 1190, 1191, 2918, 1571, 1982, 1983, 1984, 1572, 1985, - 1986, 1987, 1988, 1989, 1990, 2933, 2903, 2924, 2939, 2430, - 2948, 2288, 2940, 2951, 2953, 2958, 992, 2959, 2949, 1573, - 2960, 2950, 1574, 2971, 2973, 943, 2977, 1982, 1983, 1984, - 716, 1985, 1986, 1987, 1988, 1989, 1990, 1575, 2384, 2388, - 1828, 2132, 1560, 2547, 2058, 2344, 1743, 2865, 2058, 2691, - 2914, 2595, 2920, 2968, 2617, 1192, 1193, 1194, 1195, 1196, - 1197, 2815, 994, 1198, 1199, 2954, 2947, 1874, 1875, 2751, - 800, 2117, 72, 72, 2139, 1244, 477, 1433, 2916, 728, - 2465, 2171, 2952, 477, 995, 2389, 484, 2113, 1258, 2915, - 485, 477, 477, 2620, 2838, 477, 2457, 1949, 1742, 2172, - 2448, 2211, 2637, 1376, 997, 2096, 1357, 477, 2064, 1794, - 2850, 1415, 2796, -397, 1414, 2097, 477, 2064, 2910, 2107, - 2330, 477, 2064, 1771, 477, 2064, 2906, 2541, 1576, 2858, - 1793, 477, 477, 1419, 2077, 2303, 1577, 474, 2528, 2689, - 2512, 2780, 2299, 477, 2064, 477, 474, 2846, 2845, 2852, - 486, 474, 2853, 1598, 474, 1296, 1600, 487, 1604, 1605, - 2690, 2908, 2898, 2909, 725, 477, 2014, 1588, 1200, 1201, - 1722, 2099, 2037, 474, 1955, 1732, 1864, 2035, 1578, 2071, - 2329, 1982, 1983, 1984, 2176, 1985, 1986, 1987, 1988, 1989, - 1990, 1380, 2345, 0, 72, 1549, 0, 583, 2430, 0, - 1637, 0, 1528, 2428, 488, 718, 716, 0, 0, 0, - 719, 0, 0, 1307, 504, 504, 1308, 0, 0, 0, - 0, 583, 583, 1384, 0, 0, 0, 0, 0, 477, - 2064, 0, 0, 477, 728, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1314, 583, 1436, 2736, - 0, 0, 0, -1725, 0, 0, 595, 477, 2058, 474, - 583, 477, 2064, 2058, 0, 728, 2058, 0, 728, 0, - 725, 2620, 477, 489, 0, 0, 0, 583, 1316, 1202, - 1203, 583, 0, 0, 0, 0, 0, 477, 0, 1637, - 0, 474, 0, 0, 0, 0, 2050, 1132, 0, 0, - 0, 1132, 477, 592, 0, 0, 985, 0, 0, 1616, - 1617, 1618, 716, 1619, 1620, 1621, 1622, 1623, 1624, 0, - 490, 0, 491, 0, 0, 986, 0, 0, 0, 0, - 0, 0, 2827, 0, 0, 0, 0, 0, 492, 721, - 0, 0, 0, 0, 493, 985, 0, 494, 2021, 0, - 72, 0, 0, 0, 0, 0, 477, 1637, 0, 477, - 2064, 0, 0, 0, 986, 0, 0, 0, 0, 0, - 0, 0, 72, 2832, 0, 0, 987, 2375, -1725, 1363, - 477, 718, 477, 0, 477, 2376, 719, 0, 0, 474, - 0, 0, 0, 0, -1725, 477, 2064, 0, 0, -1725, - 0, 0, 0, 2058, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1493, 1291, 987, 477, 0, 0, -1503, - 0, 583, 0, 0, 0, 474, 0, 0, 0, 1521, - 0, 0, 2862, 0, 0, -1725, 477, 477, 0, 0, - 0, 0, 2377, 2173, 0, 0, 0, 725, 0, 0, - 477, 2182, 2184, 0, 0, 2188, 0, 0, 0, 0, - 1539, 0, 0, 0, 0, 0, 988, 1132, 2430, 2199, - 0, 0, 0, 2428, 72, 0, 0, 0, 0, 0, - 0, 2377, 0, 0, 477, 2064, 477, 718, 0, 716, - 1325, 0, 719, 0, 0, 645, 645, 0, 504, 504, - 0, 504, 645, 0, 583, 988, 0, 0, 0, 0, - 0, 0, -1503, 0, 474, 721, 989, 0, 2929, 0, - 0, 0, 0, 0, 990, 0, 0, 0, 0, 0, - 0, 0, 0, 72, 0, 0, 991, 0, 2378, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1627, 477, 0, 0, 989, 0, 0, 0, 0, - 0, 0, 1653, 990, -1503, 0, 0, 992, 0, 0, - 0, 0, 0, 0, 0, 991, 0, -1503, 0, 0, - 0, -1725, -1503, 0, 0, 0, 0, -1503, 1552, 0, - 1553, 0, 645, 0, 0, 0, -1503, 0, 0, 0, - -1503, 0, 0, 0, 0, 0, 992, 0, 0, 0, - 0, 0, 0, 994, 0, 0, 0, 0, 0, 72, - 0, 721, 2295, 2296, 2297, 583, 910, 0, 0, 0, - 0, -1503, 0, 725, 725, 995, -1505, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 583, 0, 583, - -1503, 0, 994, 0, 0, 997, 0, 2379, 0, 1756, - 2380, 1761, 0, 0, 718, 0, 0, 0, 0, 719, - 0, 0, 0, 0, 995, 716, 716, 0, 2352, 725, - 0, -1725, 0, 0, 0, 0, 0, 0, 1332, 1333, - 1334, 1335, 1336, 1337, 997, 0, 583, 0, 0, -1503, - 0, 0, -1503, 1436, 504, 0, 0, 0, -1503, 0, - 0, 0, 0, 0, 504, 1810, 504, 1814, 0, 504, - 0, 716, 0, 0, 0, 504, 0, 504, 0, -1505, - 0, 0, 0, 0, 0, 0, 0, 0, 645, 504, - 0, 0, 0, 645, 504, 0, 0, 2453, 504, 504, - 504, 504, 0, 504, 504, 0, 0, 0, 0, 0, - 0, 0, 1444, 0, -1503, 0, 0, 0, 0, 0, - 725, 0, 0, 583, 583, 1876, 0, 0, 0, 0, - 1558, -1505, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1892, 0, 1801, -1505, 0, 0, 0, 721, -1505, - 0, 0, 0, 1809, -1505, 1812, 0, 0, 1823, 0, - 0, 0, 716, -1505, 1827, 0, 1829, -1505, 0, 2051, - 0, 0, 722, 0, 0, 0, 1307, 0, 1836, 1308, - 0, 0, 0, 1839, -1725, -1725, -1725, 1844, 1845, 1846, - 1847, 0, 1851, 1852, 0, 0, -1503, 0, -1505, 0, - 718, 718, 0, 0, -1503, 719, 719, 0, 0, 1314, - 0, 2507, 2508, 2509, 2510, 0, 1315, -1505, 0, 0, - -1503, 0, -1503, -1503, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1307, 0, 0, - 1308, 1316, 0, 0, 0, 0, 718, 0, 725, 0, - 0, 719, 0, 0, 0, 0, 0, 0, 0, -1503, - 0, 0, -1503, -1503, -1503, 0, -1505, 0, 0, -1505, - 1314, 0, 0, 0, 0, -1505, 0, -1725, 504, 0, - 0, 0, 0, 0, 0, 1296, 0, 0, 0, 0, - 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1627, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1505, 0, 0, 721, 721, 0, 718, 0, 0, - 0, 1317, 719, 0, 0, 0, 0, 0, 722, 0, - 0, 725, 583, 0, 0, 1307, 0, 1318, 1308, 2067, - 0, 0, 1319, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2031, 0, 2067, 0, 0, 0, 2086, 0, - 721, 2089, 0, 1761, 0, 0, 2051, 0, 1314, 0, - 0, 0, 0, 716, 0, -1725, 725, 0, 1322, 0, - 0, 0, -1725, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1505, 0, 0, 0, 0, -1725, 0, - 1316, -1505, 0, -1725, 0, 0, 724, 0, 0, 0, - 0, 0, 1493, 0, 0, 0, 0, -1505, 716, -1505, - -1505, 1188, 1189, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1325, 722, 0, 0, 0, 0, -1725, - 0, 0, 0, 0, 0, 718, 0, 0, 0, 0, - 719, 721, 0, 0, 0, 0, -1505, 0, 0, -1505, - -1505, -1505, 0, 0, 0, 0, 0, 0, 0, 0, - 2279, 0, 0, 0, 1493, 0, 0, 0, 2718, 583, - 0, 0, 0, 0, 0, 0, 1493, 583, 583, 504, - 0, 583, 0, 0, 1325, 0, 1190, 1191, 0, 0, - -1725, 0, 0, 0, 0, 583, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -1725, 0, 0, 2206, - 0, -1725, 0, 0, 1327, 0, 0, 0, 0, 0, - 0, 0, 2757, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 718, 0, - 0, 1493, 1493, 719, 0, 0, 0, -1725, 0, 0, - 1192, 1193, 1194, 1195, 1196, 1197, 0, 0, 1198, 1199, - 0, 0, 0, 0, 1627, 0, 0, 0, 2185, 721, - 0, 0, 724, 0, 0, -1725, 0, 0, 0, 0, - 0, 0, 0, 718, 0, 0, 0, 0, 719, 0, - 0, 2807, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 1325, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1328, 0, 0, -1725, -1725, -1725, - 0, 1332, 1333, 1334, 1335, 1336, 1337, 2831, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2290, 0, 0, 0, 0, 0, 0, 0, 583, 583, - 583, 475, 0, 2067, 2307, 0, 0, 0, 2307, 2321, - 0, 0, 0, 1200, 1201, 0, 0, 0, 0, 0, - 0, 0, 721, 0, 725, -1725, 0, 0, 724, 0, - 0, 0, 1332, 1333, 1334, 1335, 1336, 1337, 1761, 0, - 0, 0, 0, -1725, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 583, 0, 504, 0, 0, 0, - 1493, 1436, 1493, 0, 1521, 0, 716, 721, 0, 0, + 477, 595, 962, 1139, 734, 1471, 473, 48, 605, 912, + 646, 999, 1242, 714, 1178, 801, 1136, 1470, 1241, 1242, + 924, 1244, 43, 48, 1436, 1298, 1184, 1222, 55, 1626, + 1225, 1530, 65, 1300, 740, 537, 77, 1559, 1502, 1503, + 1446, 2124, 2073, 1132, 1505, 1506, 732, 474, 2139, 1345, + 2141, 581, 576, 2426, 726, 1380, 2335, 2431, 2451, 67, + 1534, 1355, 1482, 1665, 1666, 1442, 741, 2120, 2452, 2067, + 795, 2465, 607, 2033, 2160, 2161, 2162, 2303, 2106, 551, + 593, 2468, 1586, 608, 1254, 1164, 1165, 717, 2264, -111, + -738, -713, -373, 1475, 613, 802, -381, 481, -735, -735, + -381, -378, -1602, 547, 2320, -378, 1305, 818, -1613, 624, + -1705, -1705, 1176, 2801, -1620, 818, -1716, -1716, 2067, 1309, + -739, -738, -1723, -1723, 1185, 1185, 1185, -1613, -736, -736, + 1242, 2629, 1242, 1242, 1507, 818, -1725, -1725, -1620, 1365, + 547, 1771, 1976, 1140, -114, 2184, 998, -739, 1004, 1315, + 1008, -1602, 2633, -340, -353, -368, -595, 547, 1734, 547, + 585, 2569, 1774, -595, 2653, 2310, 1427, 2565, 657, 1232, + 1359, 1232, 547, 2609, 818, 955, 818, 1185, 1676, 1676, + 958, 1317, -111, 1350, 1184, 1602, 1346, 1309, 1713, 1955, + -614, 600, -885, 1604, 1738, 1714, 1603, -614, 1447, 1242, + 1976, 2696, 1242, 1242, 2729, 1697, 2219, 2221, 1455, 2572, + 925, 1458, 1459, 2550, 1447, 2348, 2740, 1315, 1638, 2803, + 2191, 2318, -1023, 2592, 1871, 602, 1600, -1023, 2831, 1390, + 726, 2604, 2806, 2925, 951, 562, 602, -114, 3, 4, + 2311, 2674, 2254, 1309, 1164, 1165, 2772, 2954, 918, 1317, + 1438, 2979, 615, 2770, -1702, -1702, 945, 1438, 601, 2703, + 26, 1473, 1390, 717, 1430, 1387, 2574, 26, 2152, 2469, + 1176, 1750, 2696, 1315, 2312, 1391, 1976, 2336, 1777, 801, + 2720, 544, 1360, 2936, 2757, 1806, 801, 1480, 2916, 2917, + 2313, 2329, 2758, 2371, 1481, 2773, 31, 1454, 1859, 2314, + 1465, 2585, 2843, 31, 1806, 1317, 935, 953, 1391, 1136, + 2744, 2788, 558, 548, 548, 2128, 1469, 1309, 578, 1301, + 3, 4, 2603, 2361, 1466, 2586, 2891, 83, 2522, 1638, + 1698, 2844, 2526, 2315, 1246, 602, 726, 33, 563, 616, + 2320, 2337, 1807, 2384, 33, 2624, 1699, 1357, 2231, 2360, + 2975, 1700, 2623, 2069, 2664, 543, 954, 34, 1751, 946, + 614, 2117, 2815, 2716, 2372, 2926, 2966, 2577, 1392, 717, + 1388, 84, -111, 1357, 926, 2357, 927, 2359, 2785, 1317, + 685, 35, 533, 1528, 1393, 1778, 2457, 1701, 36, 2915, + 1448, 2067, 806, 2067, 1537, 36, 1538, 2807, 2108, 801, + 801, 1361, 2830, 807, 1267, 1544, 1448, 2938, 2727, 2980, + 2578, 1186, 1186, 1186, 1378, 1432, 2653, 1393, 2818, 2713, + 2316, 545, 1545, 2551, 2961, 1515, 2579, -114, 2470, 2774, + -232, 817, 1445, 1484, 1976, -111, 2771, 2630, 1485, -1727, + -1727, -1727, 2927, 1394, 1583, 1362, 2373, 1626, 972, 1563, + 1565, 1445, 2631, 1860, 973, 2696, 1228, 2512, 2827, 2759, + 2968, 1922, 658, 2555, 1186, 1347, 1351, 1445, 1872, 1924, + 1926, 1927, 1923, 1925, 603, 2920, 1394, 2482, 2478, 44, + 1801, 1596, 1597, 2934, 586, 1610, 1611, 2108, 2566, 48, + -114, 1374, 919, 2054, 2055, 44, 2736, 1771, 2075, 1879, + 595, 1921, 2892, 1590, 632, 2080, 2610, 2665, 1858, 44, + 633, -595, 2426, 726, 634, 594, 2431, 2086, 636, 2717, + 728, 2893, 1525, 2580, 2168, 2169, 1471, 606, 1433, 800, + 2581, 628, 1162, 1416, 1702, 629, 1677, 2035, 1417, 2696, + 482, 48, 2663, 1715, -111, -614, 717, 2667, 1179, 546, + 2669, 44, 1179, 2904, 797, 2654, 2939, 1132, 477, 477, + 974, 2955, 920, 1187, 1221, 1224, 617, 1721, 2643, 963, + 1180, 1638, 1638, 2077, 1180, 812, 1638, 628, -738, -713, + -373, 629, 477, -111, 1181, -111, 2556, 1474, 1183, -378, + -1602, 1304, 1531, 1532, 2153, 1290, -1613, 1338, 1917, -114, + 2567, 607, -1620, 804, 48, 929, 588, 1858, -739, -738, + 2594, 2595, 608, 1770, 1770, -1613, 1283, 1638, 1638, 43, + 1991, 1047, 477, 1133, 2836, 55, -1620, 2829, 2837, 65, + 1736, 2109, 2632, 77, 937, -739, 2554, 969, -114, -1602, + -114, 1166, 1170, -368, 2067, 1353, 1588, 1739, 2067, 1236, + 1237, 1236, 1237, 928, 26, 2484, 67, 1174, 1175, 714, + 2239, 1566, 1335, 1336, 1337, 1338, 1497, 2608, 2969, 2871, + 1242, 2562, 1179, 1465, 1539, 1988, 1989, 1990, 1991, 1835, + 1242, 533, 1418, 1242, 1460, 1588, 1136, 2780, 2714, 1838, + 31, 951, 1841, 2627, 1180, 2187, 728, 1466, 1552, 2233, + 726, 726, -1023, -1023, 2125, 485, 2363, 1722, 1982, 1562, + 2613, 801, 975, 2544, 818, 726, 1333, 1334, 1335, 1336, + 1337, 1338, 1626, 2097, 597, 1158, 2890, 2255, 1673, 1301, + 1588, 33, 477, 717, 717, 534, 596, 1498, 732, 1551, + 1588, 2628, 1136, 2563, 34, 1555, 2146, 2970, 717, 1986, + 1987, 1988, 1989, 1990, 1991, 1916, 1918, 598, 2098, 2147, + 2715, 1309, 1560, 976, 953, 486, 795, 977, 35, 1159, + 1132, 2624, 951, 1564, 2971, 1945, 2268, 952, 818, 1242, + 1946, 2948, 535, 2426, 1499, 1936, 642, 2431, 1938, 2202, + 2364, 1315, 2706, 800, 1242, 2206, 1667, 978, 2240, 609, + 800, 1047, 728, 2485, 86, 1179, 1298, 627, 2241, 48, + 2013, 2292, 2293, 2294, 2295, 1438, 2126, 1447, 477, 1438, + 638, 647, 639, 1317, 1461, 1906, 1439, 1180, 2084, -160, + 1441, 1947, 1462, 818, -160, 1679, 803, 726, 548, 805, + 1471, 1181, 1834, 595, 655, 953, 1928, 477, 1929, 2067, + 656, 1931, 628, 2076, 2974, 2365, 629, 2366, 2067, 1825, + 1179, 915, 1230, 2067, 979, 1231, 2067, 477, 477, 477, + 717, 477, 477, 2728, 628, 1854, 1855, 1856, 1356, 972, + 1508, 2163, 1180, 2825, 1527, 973, 2067, 1195, 1196, 2277, + 1508, 2949, 2950, 2656, 954, 477, 1183, 985, 2657, 2080, + 972, 659, -160, -1727, -1727, -1727, 973, 1986, 1987, 1988, + 1989, 1990, 1991, 800, 800, 660, 986, 1638, 1638, 1638, + 1638, 1809, 1132, 1638, 1638, 1638, 1638, 1638, 1638, 1638, + 1638, 1638, 1638, 2154, 2809, 1476, 490, 640, 491, 641, + 2813, 2977, 1160, 477, 738, 2107, 1372, 477, 477, 1373, + 1798, -160, 2074, 26, 547, 1201, 1202, 2067, 477, 2192, + 808, 44, 726, 494, 2199, 87, 810, 987, 975, 2085, + 2085, 1381, 1382, 88, 1386, 1638, 1638, 1833, 1587, 728, + 1290, 1836, 608, 608, 1594, 608, 1839, 969, 811, 31, + 1375, 974, 2311, 1376, 812, 717, 1844, 1640, 1642, 813, + 1650, 1851, 1878, 2067, 1047, -1700, -1700, 1168, 89, 1448, + 917, 1047, 974, 44, 594, 1447, 932, 2745, 972, 2475, + 1663, 1472, 923, 2127, 973, 2128, 2312, 649, 1915, 1177, + 33, 1944, 1047, 939, 1447, 1948, 628, 1949, -713, 1447, + 629, 1447, 2528, 34, -1701, -1701, 801, 2002, 1161, 2004, + 2005, 2314, 1660, 2129, 1661, 90, 606, 988, 972, 1556, + 1219, 801, 1376, 650, 973, 1205, 1206, 35, 2746, 726, + 1445, 938, 1951, 1502, 1503, 817, 44, 2747, 1976, 1505, + 1506, 36, 649, 1977, 1978, 1979, 1582, 1626, 1896, 1583, + 1897, 2025, 1243, 1201, 1202, -1703, -1703, 972, 651, 1243, + 941, 2067, 717, 973, -1704, -1704, 2748, 989, 2872, 2136, + 1685, 2138, 2047, 726, 2048, 990, 1584, 2026, 650, 1585, + 942, 2203, 1747, 972, 948, 1224, 950, 991, 2009, 973, + 974, 2071, 949, 1479, 2495, 2382, 1686, 1133, 964, 1786, + 2067, 1613, 1047, 975, 1782, 652, 717, 1376, 2375, 1614, + 1615, 1616, 2151, 2178, 2212, -1706, -1706, 2155, 992, 2159, + 477, 966, 913, 914, 975, 916, 728, 728, 2358, 965, + 974, 1168, 2316, 719, 967, 2532, 2749, 1303, 2535, 1868, + 968, 728, 1869, 2967, 1883, 983, 1306, 1583, 2750, 1177, + 2374, 2448, 2383, 1904, 2935, 2049, 1376, 2050, 977, 1354, + 652, -1707, -1707, 1205, 1206, 994, 971, 1448, 1907, 974, + 1363, 1585, 1243, 1243, 1913, 1002, 984, 1914, 1939, 977, + 1952, 1940, 2951, 1376, 2067, 800, 1448, 995, 978, 2204, + 2205, 1448, 1137, 1448, 2027, 974, 1001, 48, 1899, 2028, + 1959, 1133, 2176, 1376, 1903, 720, 1005, 997, 1687, 1003, + 797, 1138, 2344, 1688, 477, 2527, 477, 2530, 1689, 477, + 477, 1980, 1995, 2310, 48, 1376, 1141, 2017, 1445, 477, + 1376, 477, 477, 477, 477, 477, 477, 477, 2981, 632, + 2625, 44, 975, 1981, 1143, 633, 1145, 1445, 1146, 634, + 1772, 1773, 1445, 636, 1445, 979, 477, 2142, 477, 2148, + 2143, 1148, 2149, 728, 477, 477, 477, 477, 1133, -1708, + -1708, 2201, 477, 477, 1376, 985, 979, 477, 1150, 1270, + 1787, 477, 975, 1157, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 1006, 986, 477, 2262, 977, 2311, 1224, + 477, -1709, -1709, 477, 2642, 477, 1162, 1047, 2273, 719, + 1133, 1376, 1982, 2345, 1566, 2960, 2346, 1292, 2080, 1242, + 1166, 975, 1169, 1650, 2003, 1650, 1650, 1007, 2427, 1170, + 477, 1172, 2312, 1797, -1710, -1710, 1809, 977, 2751, 2349, + 2029, 2752, 2350, 477, 1173, 987, 1189, 975, 2313, 26, + 2382, 2030, 929, 2362, 477, 477, 1869, 2314, 1588, 1690, + 2023, 2460, 2476, 2489, 1869, 2477, 2490, 978, 2557, 1190, + 1691, 2496, 1842, 1192, 1585, 801, 977, 726, 2079, -1711, + -1711, 720, 600, 1638, 1220, 31, 606, 606, 728, 606, + 2558, 2315, 1223, 1869, 979, -161, 1226, 1133, 1849, 1133, + -161, 1227, 977, 1229, 1789, 2227, 1843, 1247, 2210, 91, + 717, 2517, 480, 2559, 26, 719, 1869, 2644, 531, 2707, + 1585, 2735, 2708, 2234, 1869, 2517, 33, 2762, 722, 561, + 1585, 1257, 1850, 574, 979, 988, 1262, 2765, 1047, 34, + 2766, 477, 477, 1258, 477, -344, 726, 1260, 2256, 601, + 31, 2777, 1588, -351, 1224, 2261, 26, 2782, 2786, 2761, + 2783, 2783, 1133, 35, 726, 2325, 2474, 1265, -161, 1266, + 477, 2804, 1638, 979, 2805, -1712, -1712, 1788, 2316, 717, + 477, 2834, 1267, 2841, 2805, 989, 1585, 720, -341, 726, + 1268, 33, 31, 990, 1269, 728, 726, 717, 2849, 979, + 36, 1224, 1271, 2547, 34, 991, 1900, 1983, 1984, 1985, + -232, 1986, 1987, 1988, 1989, 1990, 1991, -161, 2447, 726, + 800, 2432, 717, 1825, 1609, -233, 602, 2855, 35, 717, + 2783, 2877, -342, 33, 2878, 800, 992, 1047, 2905, 728, + 1638, 2906, 36, 485, 477, 1272, 34, 2908, 1242, 477, + 1224, 2909, 717, 1242, 1376, -345, 2911, 2590, 595, 1376, + 2942, 2946, 2962, 2783, 2791, 2805, -777, -1713, -1713, 1273, + 35, 1275, 26, 1617, 1618, 1619, 1276, 1620, 1621, 1622, + 1623, 1624, 1625, 994, 36, 477, 477, 477, 1277, 2080, + 477, 2733, 719, 2423, 1563, 1565, -1714, -1714, 1278, 477, + 477, 477, 477, 486, 722, 995, 503, 595, 31, 477, + 532, -1715, -1715, 477, 1279, 1740, 477, -343, 553, -1717, + -1717, -1718, -1718, -1719, -1719, 997, -1720, -1720, 1280, 592, + 592, 477, 477, 1281, 726, 1282, 477, -1721, -1721, -1722, + -1722, -1724, -1724, 2599, 2600, -1726, -1726, 1487, 1488, 33, + 477, -210, -210, 477, 2473, 477, 2212, 488, 1203, 1204, + -214, -214, 34, 1283, 720, 603, 1287, 717, 1299, 44, + 1136, 1205, 1206, -213, -213, 1302, 477, 1368, 1370, 1343, + 1349, 1350, 620, 1351, 2260, 1366, 35, 1178, 477, 1588, + 1379, 952, 954, 1412, 2065, 726, 44, 1414, 1419, 1425, + 36, 1443, 1444, 477, 1445, 1450, 1451, 1452, 1464, 1456, + 722, 1463, 1478, 595, 1468, 48, 1483, 1490, 1491, 1495, + 477, 477, 1500, 1501, 1508, 1516, 1509, 1518, 717, 1521, + 632, 1522, 1524, 475, 1526, 474, 633, 477, 504, 818, + 634, 1533, 504, 2065, 636, 2545, 1535, 549, 549, 552, + 504, 557, 1536, 477, 557, 1546, 1542, 557, 583, 1683, + 1543, 504, 504, 1547, 726, 1548, 1549, 1563, 1565, 1581, + 1133, 1133, 1133, 1590, 490, 1595, 491, 1309, 1242, 719, + 719, 1655, 1376, 1657, 474, 1662, 1659, 2427, 1675, 1693, + 1682, 1569, 1694, 1696, 719, 1717, 1718, 717, 493, 557, + 1749, 494, 1741, 1734, 1748, 601, 1761, 1762, 1763, 1764, + 1765, 1047, 1766, 583, 504, 583, 583, 583, 1783, 1243, + 985, 1785, 1799, 1803, 1804, 1943, 602, 1805, 1866, 1870, + 1880, 1874, 1881, 2598, 1243, 1882, 1570, 1885, 1886, 986, + 1887, 1901, 1905, 728, 1909, 1930, 1908, 1910, 1932, 1933, + 1911, 720, 720, 1912, 1919, 1920, 1941, 1953, 1961, 1964, + 2019, 44, 1571, 2024, 1962, 2031, 720, 1963, 1965, 817, + 1966, 1968, 1976, 1972, 726, 1969, 2040, 1977, 1978, 1979, + 1572, 1994, 2000, 2007, 1573, 2041, 2043, 722, 2069, 800, + 987, 2044, 2045, 2082, 1133, -215, 2090, 2088, 1471, -216, + 2087, 2091, 2093, 726, 2103, 1574, 2110, 717, 1575, 477, + 2096, 2111, 728, 2113, 2115, 1900, 719, 801, 477, 2116, + 2119, 477, 2135, 1576, 477, 2122, 2137, 2150, 2164, 2156, + 728, 477, 477, 477, 477, 595, 717, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 2157, 2158, 2165, + 477, 477, 2166, 2175, 2182, 728, 2378, 2167, 2193, 2194, + 477, 2197, 728, 44, 477, 2287, 595, 2189, 2190, 2200, + 2208, 2209, 2211, 477, 726, 2218, 477, 2226, 477, 1997, + 988, 1976, 1996, 595, 2257, 728, 477, 2258, 720, 477, + 477, 2259, 2275, 2276, 477, 477, 2279, 2288, 2052, 2301, + 2309, 2323, 2327, 2332, 2333, 2764, 2334, 717, 2338, 2341, + 477, 2343, 477, 2347, 1577, 2356, 2065, 2370, 2065, 2368, + 2456, -123, 1578, 477, 2386, 2444, 2445, 2446, 2455, 2463, + 989, 2450, 2458, 2462, -123, 2467, 2472, 2480, 990, -123, + 1308, 719, 2483, 1309, 1869, 2819, 2486, 477, 2710, 1242, + 991, 2487, 2423, 2488, 2504, 2515, 2514, 474, 2427, 474, + 2521, 2518, 2523, 2524, 477, 1579, 2531, 2536, 2537, 2538, + 2539, 2541, 1292, 1315, 722, 722, 2144, 1981, 2810, 2564, + -1727, 992, 2553, 2588, 2560, 2589, -735, 2593, -123, 722, + 2769, 2615, 2606, 726, 2616, 2607, 654, 1133, 2617, -1700, + 2430, 1133, 2634, 1133, -1701, 1317, 2619, -123, 2769, -1702, + 2637, 2640, -1703, 720, 2668, -1704, 2635, -1705, -1706, 2784, + 2170, 1292, 2784, 2649, 2622, 737, 717, 2614, 994, 726, + 2694, -1707, 2641, 2179, 2875, -1708, -1709, -1710, -1711, 1683, + 2688, -1712, -1713, -1714, -1715, -1717, 1982, -1718, 719, 2605, + 995, -1719, 2700, 2655, 2718, 2042, -123, 2721, 2722, -1720, + 726, 728, 717, 726, -1721, -123, -1722, -1723, -1724, 2692, + 997, 2673, 2702, 2059, -1725, 2022, -1726, -736, 477, 2723, + 2704, 2724, 2471, 2725, 592, 2569, 2709, 44, 1243, 2734, + 2738, 2570, 719, 717, 2732, 2216, 717, 2217, 2741, 2742, + 2755, 2222, 2223, 2822, 2571, -1727, 2756, 2763, 2767, 2775, + 583, 722, 2776, 2779, 2852, 2787, 644, 2795, 2789, 645, + 720, -1727, 2059, 583, 477, 477, -1727, 594, 504, 477, + 728, 2791, 2932, 2572, 477, 2573, 2798, 477, 477, 2801, + 2817, 484, 477, 2821, 2823, 485, 2838, 2839, 2840, 2848, + 2826, 2857, 2810, 2861, 2860, 645, 504, 504, 2874, 2876, + 2717, 2880, -1727, 477, 720, 2863, 2881, 477, -777, 2065, + 2887, 2886, 549, 2065, 2883, 2888, 2889, 2894, 2895, 2868, + 2903, 2907, 2289, 2914, 2922, 2928, 2943, 2944, 2937, 2953, + 2574, 910, 910, 557, 557, 477, 557, 2956, 2963, 2958, + 2964, 2955, 2965, 2954, -123, 486, 2976, 583, 2978, 2982, + 474, 943, 487, 1529, 474, 1561, 504, 1326, 1550, 2575, + 1358, 2078, 1133, 2423, 1781, 2546, 583, 2548, 1377, 2851, + 2865, 477, 1409, 2947, 2089, 1758, 722, 2331, 2910, 2859, + 728, 1983, 1984, 1985, 583, 1986, 1987, 1988, 1989, 1990, + 1991, 2542, 1408, 2797, 619, 1780, 622, 2304, 626, 488, + 1413, 2092, 2513, 2529, 726, 2781, 2300, 628, 2847, 2430, + 941, 629, 44, 2846, 2853, 1599, 2854, 583, 583, 583, + 1601, 1605, 1606, 2691, 2912, 2902, 2576, 2913, 1723, 2081, + 1589, 2577, 2015, 2038, 1956, 1865, 2036, 717, 1733, 2425, + 2833, 2072, 2330, 2385, 1829, 2133, 2389, 1405, 1743, -1727, + 2215, 2449, 2173, 2638, 1950, 2352, 1420, 2177, 2461, 2596, + 2549, 2351, 1745, 2873, 2693, 2918, 2170, 2924, 2973, 489, + 2816, 800, 2959, 2952, 2578, 2754, 2140, 477, 1435, 2118, + 728, 2842, 2466, 722, 477, 2626, 2921, 2433, 2172, 1292, + 2579, 2957, 477, 477, 2114, 2919, 477, 0, 0, 0, + 0, 0, 0, 817, 723, 2856, 1976, 2858, 477, 0, + 0, 1977, 1978, 1979, 2065, 0, 490, 477, 491, 0, + 1292, 0, 477, 2065, 0, 477, 0, 722, 2065, 0, + 0, 2065, 477, 477, 492, 2299, 719, 2302, 0, 0, + 493, 0, 0, 494, 0, 477, 0, 477, 0, -1727, + 0, 2065, 0, 0, 0, 474, 1333, 1334, 1335, 1336, + 1337, 1338, 0, 0, 474, 1598, 477, 547, 817, 474, + 0, 1976, 474, 592, 0, 0, 1977, 1978, 1979, 1259, + 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, + 0, 0, 474, 2270, 2581, 0, 0, 0, 0, 2430, + 0, 0, 0, 0, 0, 719, 0, 0, 720, 0, + 0, 0, 0, 0, 0, 0, 477, 0, 0, 0, + 0, 0, 2065, 719, 0, 2543, 0, 0, 0, 0, + 0, 0, 0, 0, 477, 728, 0, 2737, 0, 0, + 0, 0, 0, 0, 595, 0, 1297, 0, 719, 0, + 0, 0, 0, 0, 0, 719, 0, 0, 477, 2626, + 0, 0, 477, 474, 725, 0, 728, 0, 2065, 728, + 0, 1193, 1194, 477, 0, 0, 0, 720, 719, 44, + 723, 0, 0, 0, 0, 0, 0, 0, 583, 477, + 0, 0, 0, 0, 0, 720, 0, 0, 1133, 0, + 0, 0, 1133, 477, 0, 504, 504, 0, 0, 474, + 0, -1727, 0, 0, 0, 0, 0, 0, 0, 0, + 720, 0, 1308, 0, 0, 1309, 0, 720, 0, 0, + 0, 0, 0, 0, 583, 583, 1424, 0, 583, 1434, + 0, 0, 0, 0, 0, 0, 1195, 1196, 0, 2618, + 720, 583, 0, 0, 0, 1315, 0, 477, 0, 0, + 477, 0, -1727, 2835, 0, 0, 2065, 0, 583, 0, + 1243, 1635, 583, 0, 0, 0, 1981, 0, 0, 0, + 1982, 477, 0, 477, 0, 477, 723, 1317, 2059, 477, + 0, 637, 2059, 719, 0, 0, 0, 0, 0, 477, + 0, 0, 0, 0, 648, 2065, 0, 474, 0, 0, + 1197, 1198, 1199, 1200, 1201, 1202, 0, 477, 1203, 1204, + 2866, 0, 44, 0, 44, 0, 0, 0, 0, 0, + 0, 722, 0, 0, 2690, 0, 0, 477, 477, 0, + 725, 0, 0, 0, 0, 1982, 474, 0, 0, 0, + 0, 477, 0, 0, 719, 0, 0, 2032, 0, 1553, + 0, 1554, 0, 0, 0, 720, 0, 0, 0, 0, + 2430, 0, 1133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1760, 477, 0, 0, 0, -1727, 922, 2065, + 477, 0, 0, 0, 0, 0, 0, 0, 2425, 0, + 722, 1973, 1974, -1727, 0, 1492, 1993, 944, -1727, 2933, + 0, 0, 0, 0, 1511, 0, 0, 583, 722, 0, + 0, 0, 0, 719, 1205, 1206, 720, 0, 0, 0, + 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 722, -1727, 0, 725, 2020, 2021, 0, + 722, 0, 0, 0, 0, 0, 1541, 477, 1152, 1154, + 1156, 0, 0, 723, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 722, 0, 1983, 1984, 1985, 0, 1986, + 1987, 1988, 1989, 1990, 1991, 0, 0, 645, 645, 0, + 504, 504, 0, 504, 645, 720, 583, 0, 0, 1326, + 0, 0, 2059, 0, 0, 0, 0, 2059, 0, 0, + 2059, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2828, 0, 0, + 0, 0, 0, 719, 0, 1207, 1208, 0, 0, 0, + 1983, 1984, 1985, 1628, 1986, 1987, 1988, 1989, 1990, 1991, + 0, 0, 0, 0, 1654, 0, 0, 0, 0, 0, + 0, 0, 719, 0, 1802, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1810, 0, 1813, 0, 0, 1824, + 0, 0, 0, 0, 645, 1828, 0, 1830, 722, 0, + 0, -1727, 0, 0, 44, 0, 0, 0, 0, 1837, + 0, 0, 0, 0, 1840, 720, 0, 0, 1845, 1846, + 1847, 1848, 0, 1852, 1853, 0, 44, 583, 910, 0, + 0, 0, 0, 725, 1635, 1635, 0, 0, 1308, 1635, + 0, 1309, 0, 719, 720, 0, -1727, -1727, -1727, 583, + 0, 583, 0, 0, 0, 0, 0, 2059, 0, 722, + 723, 723, 0, 0, 0, 0, 0, 0, 1292, 0, + 0, 1315, 0, 0, 0, 723, 0, 0, 1316, 2425, + 1635, 1635, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, + 1791, -1727, 1793, 1317, 0, 1434, 504, 0, 1333, 1334, + 1335, 1336, 1337, 1338, 0, 720, 504, 1811, 504, 1815, + 0, 504, 0, 0, 0, 0, 0, 504, 722, 504, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 1371, + 645, 504, 0, 0, 0, 645, 504, 0, 0, 0, + 504, 504, 504, 504, 0, 504, 504, 2235, 2236, 2237, + 2238, 0, 719, 2242, 2243, 2244, 2245, 2246, 2247, 2248, + 2249, 2250, 2251, 0, 0, 583, 583, 1877, 0, 0, + 0, 0, 0, 0, 0, 0, 1421, 44, 0, 1426, + 0, 0, 0, 0, 0, 985, 0, 723, 719, 1889, + 0, 0, 1453, 1318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 986, 2281, 2282, 0, 0, 1319, + 725, 725, 0, 1477, 1320, 0, 0, 0, 0, 719, + 0, 0, 719, 0, 720, 725, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 504, 0, 2387, 0, 0, 0, 0, 0, 0, 725, - 0, 0, 0, 0, 0, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 0, 0, 725, 894, 894, + 0, 0, 0, 0, -1505, 0, 0, 0, 0, 0, + 1323, 0, 0, 0, 0, 987, 2376, 722, 0, 0, + 720, 0, 0, 0, 2377, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1436, 0, 0, 583, 1202, 1203, 0, 0, 0, 0, - 0, 716, 725, 0, 0, 0, 1436, 722, 722, 725, - 0, 0, 0, -1725, 1521, 2353, 0, 0, 0, 716, - 1332, 1333, 1334, 1335, 1336, 1337, 583, 0, 0, 0, - 0, 0, 725, 1493, 0, 0, 0, 0, 0, 2386, - 0, 1042, 1049, 0, 716, 0, 0, 0, 0, 0, - 0, 716, 0, 722, 2433, 2434, 2435, 2436, 2437, 2438, - 2439, 2440, 2441, 2442, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 716, 724, 0, 0, 0, 0, - 0, 2490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2506, 0, 0, 583, 583, 583, - 583, 718, 0, 0, 2307, 2321, 719, 2307, 0, 0, - 2515, 0, 0, 0, 2067, 0, 0, 0, 2067, 0, - 0, 0, 0, 0, 2533, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 722, 0, 0, 0, 0, 725, - 910, 0, 0, 0, 2086, 0, 0, 0, 0, 1761, - 0, 0, 0, 1627, 0, 0, 0, 0, 0, 0, - 0, 1436, 0, 0, 0, 0, 718, 1307, 0, 0, - 1308, 719, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 716, 0, 0, 718, 0, 2596, 0, 0, 719, - 0, 0, 0, 0, 0, 0, 0, 0, 725, 0, - 1314, 0, 0, 0, 0, 0, 0, -1725, 0, 718, - 0, 1042, 0, 0, 719, 0, 718, 0, 0, 0, - 0, 719, 0, 0, 0, 0, 0, 0, 1262, 0, - 0, 0, 1316, 0, 0, 721, 0, 0, 0, 718, - 716, 0, 0, 0, 719, 0, 0, 0, 0, 0, - 0, 724, 724, 0, 0, 1493, 0, 1273, 0, 0, - 0, 0, 722, 0, 0, 1892, 0, 725, 0, 0, - 0, 0, 0, 0, 0, 2634, 0, 1283, 1284, 1285, - 0, 0, 1292, 0, 0, 0, 0, 0, 0, 1307, - 0, 0, 1308, 0, 0, 0, 0, 724, 0, 0, - 721, 0, 2282, 0, 0, 1347, 0, 0, 0, 716, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 475, - 2307, 0, 1314, 2660, 0, 0, 504, 0, 2067, -1725, - 0, 0, -1725, 2067, 0, 0, 2067, 0, 2671, 0, - 0, 2674, 0, 721, 0, 0, 0, 0, -1725, 0, - 721, 0, 0, -1725, 1316, 2697, 718, 0, 0, 1391, - 0, 719, 0, 1405, 1410, 722, 0, 0, 0, 0, - 0, 0, 0, 721, 0, 645, 504, 725, 0, 0, - 0, 0, 0, 0, 583, 0, 0, 0, 724, -1725, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, - 722, 504, 504, 0, 1042, 718, 0, 0, 0, 716, - 719, 1042, 1436, 0, 2283, 504, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, - 0, 2697, 1042, 0, 1325, 0, 0, 1307, 0, 716, - 1308, 0, 0, 0, -1725, 1309, 1310, 1311, 0, 0, - 504, 0, 0, 0, 0, 2710, 0, 0, 0, 0, - -1725, 0, 0, 2067, 0, -1725, 0, 725, 2674, 0, - 1314, 0, 0, 0, 718, 0, 0, 1315, 0, 719, - 721, 0, 0, 2793, 0, 0, 0, 0, 504, 0, - 2729, 2730, 0, 0, 0, 0, 0, 583, 0, 0, - 0, -1725, 1316, 0, 2739, 0, 724, 0, 0, 716, - 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, - 645, 0, 0, 0, 0, -1725, 0, 0, 0, 0, - 0, 0, 0, 583, 0, 0, 0, 0, 0, 721, - 0, 0, 0, 0, 0, 0, 0, 0, 1042, 0, - 0, 0, 0, 0, 0, 0, 1325, 0, 0, 0, - 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, - 2849, 0, 0, 0, 504, 0, 0, 2798, 2671, 0, - 0, 0, 0, 0, 718, 0, 725, 0, 0, 719, - 0, 0, 0, 0, 0, 0, 0, 2697, 645, 645, - 645, 0, 1317, 0, 0, 2819, 0, 0, 721, 724, - 0, 0, 0, 0, 718, 0, 0, 0, 1318, 719, - 0, 0, 725, 1319, 0, -1725, 0, 0, 716, 0, - 0, 0, 1332, 1333, 1334, 1335, 1336, 1337, 0, 0, - 0, 0, 0, 2671, 0, -1725, -1725, -1725, 0, 0, - 0, 0, 0, 725, 724, 2793, 725, 2660, 1592, 1322, - 0, 0, 0, 0, 716, 0, 1761, 0, 1611, 0, - 1628, 0, -1519, 1640, 1643, 1648, 1651, 0, 0, 0, - 1436, 0, 0, 0, 718, 0, 2697, 0, 0, 719, - 0, 0, 0, 0, 0, 716, 0, 1663, 716, 0, - -1725, 0, 0, 1667, 1668, 1669, 1670, 645, 722, 0, - 0, 1679, 1680, 0, 1325, 0, 1691, 0, 721, 0, - 1694, 0, 0, 1702, 1703, 1704, 1705, 1706, 1707, 1708, - 1709, 1710, 0, 0, 1711, 0, 0, 0, 0, 1719, - 0, 0, 1723, 0, 894, 0, 1042, -1725, 721, 0, - 0, 0, 0, 0, 1332, 1333, 1334, 1335, 1336, 1337, - 0, 0, 0, 0, 0, -1519, 0, 0, 0, 1745, + 0, 720, 0, 0, 720, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1326, 0, 0, 0, 0, + 0, 0, 723, 0, 0, 0, 0, 0, 0, 0, + 504, 2378, 0, 0, 0, 0, 0, 1297, 722, 0, + 0, 0, 0, 0, 0, 0, 0, -1505, 0, 0, + 0, 0, 0, 0, 0, 988, 0, 725, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1517, 0, + 0, 1628, 0, 0, 0, 0, 0, 0, 0, 0, + 1635, 1635, 1635, 1635, 0, 0, 1635, 1635, 1635, 1635, + 1635, 1635, 1635, 1635, 1635, 1635, 0, 0, 0, -1505, + 0, 0, 0, 0, 583, 989, 0, 1328, 0, 0, + 0, 2068, -1505, 990, 0, 0, 0, -1505, 0, 0, + 0, 0, -1505, 0, 0, 991, 0, 2379, 0, 723, + 0, -1505, 0, 719, 0, -1505, 0, 0, 1635, 1635, + 0, 0, 0, 0, 2196, 0, 0, 1558, 1308, 0, + 0, 1309, 0, 0, 0, 0, 992, 722, 0, 0, + 2068, 0, 2095, 0, 0, 2100, -1505, 0, 0, 1793, + 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, + 0, 1315, 725, 0, 1492, -1505, 0, 0, -1727, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1307, 0, 0, 1308, - 0, 722, 0, 0, 1309, 1310, 1311, 0, 0, 0, - 1284, 1285, 0, 718, 0, 1327, 0, 0, 719, 0, - 0, 1312, 0, 0, 0, 0, 722, -1519, 721, 1314, - 0, 0, 0, 722, 0, 0, 1315, 0, 0, 0, - -1519, 0, 0, 0, 0, -1519, 0, 0, 0, 718, - -1519, 0, 0, 0, 719, 0, 722, 0, 0, -1519, - 0, 1316, 0, -1519, 0, 0, 725, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 718, 0, 0, 718, 0, 719, 0, 1042, 719, 0, - 1861, 1862, 0, 1863, -1519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 716, 1307, - 0, 0, 1308, -1519, 0, 1328, 0, 0, 1329, 1330, - 1331, 0, 1332, 1333, 1334, 1335, 1336, 1337, 1901, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1314, 0, 0, 0, 0, 721, 0, -1725, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1317, -1519, 0, 0, -1519, 0, 0, 0, 0, - 0, -1519, 724, 722, 1316, 0, 0, 1318, 0, 0, - 0, 0, 1319, 721, 0, 0, 1042, 0, 0, 0, - 0, 0, 0, 1953, 0, 0, 0, 0, 1959, 0, - 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 0, - 0, 0, 0, 0, 721, 0, 0, 721, 1322, 0, - 0, 0, 0, 0, 0, 0, 0, -1519, 0, 0, - 0, 0, 722, 0, 0, 0, 1974, 724, 0, 0, - 0, 0, 0, 0, 2501, 0, 0, 0, 1648, 0, - 1648, 1648, 0, 0, 0, 724, 1323, 0, 2010, 1324, - 0, 0, 2013, 0, 0, 2015, 1340, 0, 0, 0, - 0, 0, 0, 1325, -1725, 0, 1326, 0, 0, 0, - 724, 0, 2051, 718, 0, 0, 0, 724, 719, 0, - -1725, 0, 0, 0, 0, -1725, 0, 0, 0, 2033, - 0, 722, 2036, 0, 2038, 0, 1340, 0, 0, -1519, - 724, 0, 0, 0, 0, 0, 0, -1519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1725, 0, -1519, 0, -1519, -1519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1327, 0, 1391, 0, -39, 0, - 0, 0, -1519, 0, 0, -1519, -1519, -1519, 0, 0, - 0, 0, 0, 1410, 1709, 0, 1325, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, - 4, 0, 2111, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 0, 0, 1340, 5, 0, 721, 0, 0, - 0, 1340, 0, 0, 6, 1306, 0, 724, 0, 0, - 1307, 0, 0, 1308, 0, 0, 7, 0, 1309, 1310, - 1311, 722, 0, 0, 0, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 1312, 0, 0, 1313, 9, - 1042, 10, 0, 1314, 1328, 0, 0, 1329, 1330, 1331, - 1315, 1332, 1333, 1334, 1335, 1336, 1337, -1725, 0, 11, - 0, 0, 0, 0, 1966, 0, 724, 0, 0, 0, - 0, 0, 0, 12, 0, 1316, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 14, - 0, 722, 0, 0, 0, 0, 0, 15, 0, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 724, 0, 0, 2224, 0, - 0, 19, 0, 0, 0, 0, 0, 2228, 0, 0, - 2229, 0, 0, 2231, 0, 0, 20, -1725, 0, 0, - 0, 0, 0, 0, 1332, 1333, 1334, 1335, 1336, 1337, - 0, 0, 0, 1307, 0, 1317, 1308, 0, 0, 2251, - 2252, 21, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1318, 0, 2262, 0, 0, 1319, 0, 0, 0, - 0, 0, 2268, 0, 0, 2271, 1314, 2273, 0, 0, - 722, 0, 0, -1725, 1340, 2277, 0, 0, 1320, 1321, - 0, 0, 0, 2284, 2285, 1340, 0, 0, 0, 1635, - 0, 0, 1322, 0, 0, 1340, 1340, 1340, 1316, 1307, - 0, 0, 1308, 0, 1340, 724, 722, 1309, 1310, 1311, - 0, 0, 2325, 0, 0, 0, 0, 0, 22, 0, - 0, 23, 2333, 0, 1312, 0, 0, 2265, 0, 0, - 1323, 0, 1314, 1324, 0, 724, 0, 722, 2346, 1315, - 722, 0, 0, 0, 0, 0, 0, 1325, 0, 24, - 1326, 0, 0, 0, 0, 0, 0, 0, 25, 1340, - 0, 0, 0, 0, 1316, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 27, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, - 0, 1307, 0, 29, 1308, 0, 0, 0, -1725, 1309, - 1310, 1311, 0, 1340, 30, 724, 0, 0, 31, 0, - 0, 0, 0, 0, -1725, 0, 1312, 1340, 0, -1725, - 0, 0, 1340, 0, 1314, 0, 0, 0, 0, 0, - 0, 1315, 0, 0, 0, 0, 0, 0, 1327, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 0, -1725, 1316, 0, 0, 0, - 0, 0, 34, 0, 1317, 0, 0, 2478, 0, 0, + 0, 0, 0, 994, 0, 720, 0, 1329, 0, 0, + -1727, -1727, -1727, 1317, 1333, 1334, 1335, 1336, 1337, 1338, + 0, 0, 0, 0, 722, 995, 0, 722, 0, 0, + 0, 0, 0, 0, -1505, 0, 0, -1505, 0, 0, + 0, 0, 0, -1505, 0, 997, 1492, 2380, 0, 0, + 2381, 583, 0, 0, 0, 0, 0, 0, 0, 583, + 0, 0, 1492, 583, 583, 583, 0, 0, 1732, 0, + 0, 0, 0, 0, 0, 0, 504, -1505, 0, 0, + 0, 0, 0, 2280, 0, 0, 0, 0, 0, 725, + 1742, 2207, 1744, -1507, 0, 0, 0, 0, 0, 0, + -1505, 0, 0, 0, 0, 0, 0, 645, 0, 0, + 0, 0, 0, -1727, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1492, 1492, 0, 0, 0, 0, -1727, + 0, 0, 1776, 725, -1727, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1628, 0, 0, 0, + 0, 0, 1445, 0, 0, 2052, 2354, 0, 0, 0, + 0, 0, 0, 2639, 817, 0, 0, 1976, 0, 0, + -1727, 0, 1977, 1978, 1979, 0, 0, 0, 0, 0, + 2387, 0, -1505, 0, 0, 0, -1507, 0, 0, 2271, + -1505, 0, 0, 0, 0, 2434, 2435, 2436, 2437, 2438, + 2439, 2440, 2441, 2442, 2443, 0, -1505, 0, -1505, -1505, + 0, 0, 0, 0, 0, 0, 1875, 1876, 0, 0, + 0, 0, 2291, 0, 0, 1326, 0, 0, 722, 0, + 583, 583, 583, 475, 0, 2068, 2308, 0, -1507, 0, + 2308, 2322, 0, 0, 0, -1505, 0, 0, -1505, -1505, + -1505, -1507, 2712, 0, 0, 0, -1507, 0, 0, 0, + 0, -1507, 0, 0, 0, 0, 0, 583, 0, 0, + -1507, 0, 0, 0, -1507, 0, 0, 723, 0, 0, + 0, 0, 0, 0, 0, 1793, -1521, 0, 504, 0, + 0, 0, 1492, 1434, 1492, 0, 1511, 0, 0, 0, + 0, 0, 0, 0, 0, -1507, 0, 0, 0, 0, + 0, 0, 504, 0, 2388, 0, 0, -1727, 0, 0, + 2760, 0, 0, 0, -1507, 0, 0, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 723, 0, 0, 0, + 0, 0, 1434, 0, 0, 583, 0, 0, 0, 1511, + 1193, 1194, 0, 0, 723, 0, 0, 1434, 0, 894, + 894, 0, 1981, -1507, 0, 0, -1507, 0, 0, -1521, + 0, 0, -1507, 0, 0, 0, 1635, 0, 583, 723, + 0, 0, 0, 0, 0, 1492, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1318, 0, 0, 0, 0, 1319, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 0, 0, -39, 0, 0, 0, 1320, 1321, 0, - 1325, 0, 0, 2491, 2492, 0, 0, 0, 2493, 0, - 0, 1322, 0, 2496, 724, 0, 2499, 2500, 0, 0, - 0, 2504, 0, 0, 0, 0, 0, 0, 1328, 0, - 722, 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, 1336, - 1337, 0, 0, 0, 0, 0, 1317, 0, 0, 1323, - 724, 0, 1324, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1318, 0, 0, 0, 1325, 1319, 894, 1326, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 724, 0, 0, 724, 0, 0, 0, 0, 1320, - 1321, -1725, 0, 0, 1340, 0, 0, 0, 0, 0, - 0, 0, 0, 1322, 0, 0, 0, 0, 0, 0, - 2590, 0, 0, 1340, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1340, 0, 1635, 1635, 0, 1991, 0, 1635, 0, 0, - 0, 1323, 1340, 0, 1324, 1340, 0, 0, 0, 0, - 1340, 0, 0, 1340, 0, 0, 0, 1327, 1325, 0, - 0, 1326, 0, 0, 0, 1340, 0, 0, 0, 1340, - 1340, 1340, 1340, 0, 0, 0, 0, 0, 1635, 1635, - 0, 1340, 1340, 0, 0, 0, 0, 0, 0, 0, - 0, -1725, 0, 1340, 0, 0, 1340, 0, 1332, 1333, - 1334, 1335, 1336, 1337, 1340, 1340, 1340, 1340, 1340, 1340, - 1340, 1340, 1340, 1340, 0, 0, 0, 0, 0, 0, - 0, 1340, 0, 2010, 0, 1340, 0, 0, 0, 0, - 0, 2644, 2645, 0, 0, 2646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1340, 0, 1327, - 0, 0, 0, 0, 0, 0, 0, 1328, 0, 0, - 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, 1336, 1337, - 0, 2685, 2686, 0, 1657, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 724, 2699, 506, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1507, -1727, 0, 723, + 0, 0, 0, 0, 1333, 1334, 1335, 1336, 1337, 1338, + 0, -1521, 1042, 1049, 0, 1195, 1196, 725, 0, -1507, + 0, 1982, 0, 2491, -1521, 2051, 0, 0, 0, -1521, + 0, 0, 0, 0, -1521, 0, 0, 0, 0, 0, + 0, 0, 0, -1521, 0, 0, 2507, -1521, 0, 583, + 583, 583, 583, 0, 0, 1635, 2308, 2322, 0, 2308, + 0, 0, 2516, 0, 0, 0, 2068, 0, 0, 0, + 2068, 0, 0, 0, 2052, 0, 2534, 0, -1521, 1197, + 1198, 1199, 1200, 1201, 1202, 0, 725, 1203, 1204, 0, + 0, 1628, 0, 0, 0, 0, 0, -1521, 910, 0, + 0, -1507, 0, 2100, 725, 0, 0, 1793, 0, -1507, + 0, 0, 0, 1434, 723, 0, 0, 0, 0, 0, + 0, 0, 0, 1635, 0, -1507, 0, -1507, -1507, 725, + 0, 0, 0, 0, 0, 0, 725, 0, 2597, 0, + 0, 0, 0, 0, 0, 0, -1521, 0, 0, -1521, + 0, 0, 0, 0, 0, -1521, 0, 0, 0, 725, + 0, 0, 0, 0, -1507, 0, 0, -1507, -1507, -1507, + 0, 0, 2174, 0, 0, 723, 0, 0, 0, 0, + 2183, 0, 0, 0, 2185, 2186, 2188, 0, 0, -1521, + 0, 0, 1042, 1205, 1206, 0, 2711, 0, 0, 0, + 1308, 0, 0, 1309, 0, 0, 0, 1492, 0, 1263, + 0, 0, -1521, 0, 0, 2620, 1983, 1984, 1985, 1889, + 1986, 1987, 1988, 1989, 1990, 1991, 0, 0, 0, 0, + 0, 2730, 2731, 1315, 0, 0, 0, 0, 1274, 0, + -1727, 0, 0, 0, 723, 0, 0, 0, 0, 0, + 2743, 0, 0, 0, 0, 0, 0, 0, 1284, 1285, + 1286, 0, 0, 1293, 0, 1317, 0, 2052, 0, 0, + 0, 475, 2308, 817, 725, 2661, 1976, 0, 504, 0, + 2068, 1977, 1978, 1979, 0, 2068, 1348, 0, 2068, 0, + 2672, 0, 0, 2675, -1521, 0, 0, 0, 2498, 0, + 0, 0, -1521, 0, 1207, 1208, 0, 0, 2697, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1521, 2799, + -1521, -1521, 1193, 1194, 1209, 0, 0, 645, 504, 0, + 0, 0, 0, 0, 1385, 725, 583, 0, 1399, 1404, + 0, 0, 0, 0, 0, 1308, 2820, 0, 1309, 0, + 0, 2296, 2297, 2298, 723, 0, 0, -1521, 0, 0, + -1521, -1521, -1521, 504, 504, -1727, 0, 0, 0, 0, + 0, 0, 0, 0, 1434, 0, 583, 0, 1315, 2697, + 0, -1727, 504, 723, 0, -1727, -1727, 0, 2339, 0, + 0, 0, 0, 0, 0, 1042, 0, 1195, 1196, 0, + 0, 0, 1042, 0, 725, 0, 0, 0, 0, 0, + 1317, 0, 504, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -1727, 1042, 0, 2068, 0, 0, 0, 0, + 2675, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2794, 0, 0, 0, 0, + 0, 504, 0, 0, 723, 0, 0, 0, 0, 583, + 0, 1197, 1198, 1199, 1200, 1201, 1202, 0, 0, 1203, + 1204, 1341, 0, 0, 0, 0, 2454, 1326, 504, 0, + 2283, 1981, 645, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1558, + -1727, 1341, 0, 0, 725, 0, 0, 0, 0, 0, + 0, 0, 0, 475, 0, 0, -1727, 0, 0, 0, + 0, -1727, 2850, 1042, 0, 0, 504, 0, 0, 0, + 2672, 0, 0, 725, 0, 0, 0, 0, 0, 0, + 1982, 0, 0, 0, 0, 0, 0, 0, 645, 645, + 645, 0, 2697, 0, 0, 0, 0, -1727, 0, -1727, + 0, 0, 0, 723, 0, 1205, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2508, 2509, 2510, 2511, 1308, 0, 0, 1309, 0, 0, + 0, 0, 0, 0, 0, 2672, 0, 0, 0, 723, + 0, 0, 0, 0, 725, 0, 0, 2794, 0, 1341, + 0, 0, 1326, 0, 0, 0, 1341, 1315, 0, 0, + 0, 1793, 0, 0, -1727, 0, 0, 0, 0, 0, + 723, 0, 0, 723, 0, 1434, 2697, 0, 0, 0, + 1593, 0, 0, 0, 0, 0, 0, 0, 0, 1317, + 1612, 0, 1629, 0, 0, 1641, 1644, 1649, 1652, -1727, + 0, 2661, 645, 0, 0, 0, 1333, 1334, 1335, 1336, + 1337, 1338, 0, 0, 0, 0, 1207, 1208, 0, 1664, + 0, 0, 0, 0, 0, 1668, 1669, 1670, 1671, 0, + 0, 0, 0, 1680, 1681, 0, 0, 0, 1692, 0, + 0, 0, 1695, 0, -1727, 1703, 1704, 1705, 1706, 1707, + 1708, 1709, 1710, 1711, 0, 0, 1712, 0, 0, 2284, + 0, 1720, 0, 725, 1724, 0, 894, 0, 1042, 0, + 0, -39, 0, 0, 0, 1983, 1984, 1985, 0, 1986, + 1987, 1988, 1989, 1990, 1991, 0, 0, 0, 0, -1727, + 1, 1746, 0, 0, 0, 0, 0, 0, 0, 725, + 2, 0, 3, 4, 0, -1727, 0, 0, 0, 0, + -1727, 0, 0, 0, 0, 1285, 1286, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, + 725, 0, 0, 725, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, -1727, 0, -1727, 0, 0, 0, + 8, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 0, + 0, 0, 9, 0, 10, 0, 0, 0, 0, 0, + 1341, 0, 0, 0, 723, 0, 0, 0, 0, 0, + 0, 1341, 11, 0, 0, 1636, 0, 0, 0, 0, + 0, 1341, 1341, 1341, 0, 0, 12, 0, 0, 1042, + 1341, 1326, 1862, 1863, 0, 1864, 13, 2719, 0, 0, + 0, 1308, 14, 0, 1309, 0, 0, 0, 0, 0, + 15, 0, 16, 17, 0, 0, 0, 0, 0, 1308, + 0, 1884, 1309, 0, 0, 18, 0, 1310, 1311, 1312, + 0, 0, 0, 0, 1315, 0, 0, 2739, 0, 0, + 817, -1727, 0, 1976, 1313, 1341, 0, 0, 1977, 1978, + 1979, 0, 1315, 0, 19, 0, 0, 0, 0, 1316, + 0, 0, 0, 0, 0, 2499, 1317, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1341, -1727, 1317, 0, 0, 0, 1042, 0, + 0, 0, 0, 0, 21, 1954, 1341, 0, 0, 0, + 1960, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2808, 0, 0, 0, 725, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2502, 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1307, 0, 507, - 1308, 0, 0, 0, 0, 1309, 1310, 1311, 0, 1328, - 0, 0, 1329, 1330, 1331, 508, 1332, 1333, 1334, 1335, - 1336, 1337, 1312, 1340, 1340, 1340, 1657, 0, 0, 0, - 1314, 0, 0, 0, 0, 0, 0, 1315, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2777, 1307, 0, - 0, 1308, 1316, 1340, 0, 0, 1309, 1310, 1311, 509, - 0, 0, 1292, 0, 0, 0, 0, 0, 510, 0, - 0, 0, 0, 1312, 0, 0, 0, 2799, 0, 0, - 511, 1314, 0, 0, 0, 512, 0, 0, 1315, 0, - 0, 0, 2813, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1340, 0, 0, 0, 0, - 0, 1340, 513, 1316, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1991, 1991, 1340, 0, 1635, 1635, - 1635, 1635, 0, 0, 1635, 1635, 1635, 1635, 1635, 1635, - 1635, 1635, 1635, 1635, 1991, 0, 0, 0, 0, 0, - 0, 0, 1317, 0, 0, 0, 514, 0, 0, 0, - 515, 0, 1340, 0, 0, 1340, 0, 1340, 1318, 0, - 0, 1991, 1991, 1319, 2685, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1340, 1635, 1635, 1340, 0, - 1340, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2881, 0, 0, 1322, - 0, 0, 0, 1317, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 516, 0, 0, 2895, 2895, 0, 1318, - 0, 0, 0, 0, 1319, 0, 0, 517, 0, 0, - 2685, 0, 0, 0, 0, 0, 0, 1323, 0, 0, - 1324, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, - 0, 0, 0, 1340, 1325, 0, 0, 1326, 0, 518, - 1322, 0, 519, 0, 0, 0, 2895, 0, 0, 0, - 520, 0, 0, 521, 0, 0, 0, 1307, 0, 0, - 1308, 0, 0, 0, 0, 1309, 1310, 1311, 0, 0, - 0, 0, 522, 0, 0, 0, 0, 0, 1323, 0, - 0, 1324, 1312, 0, 0, 523, 0, 0, 0, 0, - 1314, 0, 524, 0, 0, 1325, 0, 1315, 1326, 0, - 0, 525, 0, 0, 0, 0, 0, 526, 0, 0, - 0, 0, 2895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1316, 0, 0, 1327, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1340, 0, 0, 0, - 1340, 1340, 0, 1340, 0, 0, 1991, 1991, 1991, 1991, - 0, 0, 0, 1991, 1991, 1991, 1991, 1991, 1991, 1991, - 1991, 1991, 1991, 1340, 1340, 0, 0, 0, 0, 1307, - 0, 0, 1308, 0, 1340, 0, 1327, 1309, 1310, 1311, - 1340, 0, 0, 1340, 0, 1340, 0, 0, 0, 1340, - 0, 0, 1991, 1991, 1312, 0, 1340, 1340, 0, 0, - 0, 0, 1314, 0, 0, 0, 0, 0, 0, 1315, - 0, 0, 1317, 0, 0, 1328, 0, 0, 1329, 1330, - 1331, 0, 1332, 1333, 1334, 1335, 1336, 1337, 1318, 0, - 0, 0, 2017, 1319, 1316, 0, 0, 1340, 0, 0, - 0, 0, 0, 0, 0, 1340, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1320, 1321, 972, 1340, 0, - 0, 0, 0, 973, 0, 0, 0, 0, 0, 1322, - 985, 0, 0, 0, 0, 0, 1328, 0, 0, 1329, - 1330, 1331, 0, 1332, 1333, 1334, 1335, 1336, 1337, 986, - 0, 0, 0, 2227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1323, 0, 0, - 1324, 0, 0, 0, 0, 0, 972, 0, 0, 0, - 0, 0, 973, 0, 1325, 0, 0, 1326, 0, 985, - 0, 0, 0, 0, 1317, 0, 0, 0, 0, 0, - 987, 0, 0, 0, 0, 0, 0, 0, 986, 0, - 1318, 0, 0, 0, 0, 1319, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, - 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, + 1649, 0, 1649, 1649, 0, 0, 2832, 0, 0, 0, + 2011, 0, 0, 0, 2014, 0, -1727, 2016, 0, 0, + 0, 22, 0, 0, 23, 0, 0, 0, 0, 0, + 0, 0, -1727, -1727, 1318, 0, 0, -1727, 0, 0, + 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 0, 0, + 1319, 2034, 0, 24, 2037, 1320, 2039, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1727, 0, 0, 26, 1321, 1322, 0, + 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, + 0, 1323, 0, 0, 0, 0, 0, 29, 1981, 0, + 0, 0, 0, 0, 1385, 0, 0, 0, 30, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 1404, 1710, 0, 0, 0, 0, 0, 1326, 1324, + 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, + 1341, 0, 0, 0, 0, 0, 1326, 0, 32, 1327, + 0, 0, 0, 33, 2112, 0, 0, 0, 0, 1341, + 0, 0, 0, 0, 0, 0, 34, 1982, 0, 0, + 0, 0, 0, 0, 0, 0, 1341, 0, 1636, 1636, + 0, 1992, 0, 1636, 0, 0, 0, 0, 1341, 0, + 35, 1341, 0, 0, 0, 0, 1341, 0, 0, 1341, + 0, 0, 0, 0, 36, 0, 0, -39, 0, 0, + 0, 1341, 1042, 0, 0, 1341, 1341, 1341, 1341, 0, + -1727, 0, 0, 0, 1636, 1636, 0, 1341, 1341, 0, + 0, 0, 1307, 0, 0, 0, 0, 1308, 1328, 1341, + 1309, 0, 1341, 0, 0, 1310, 1311, 1312, 0, 0, + 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, + 0, 0, 1313, 0, 0, 1314, 0, 1341, 0, 0, + 1315, 1341, 0, 0, 0, 0, 0, 1316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1340, 1322, 0, 0, 1635, 0, 0, 0, 0, 987, - 0, 0, 0, 1340, 1340, 1340, 0, 0, 1340, 0, - 0, 1340, 1340, 0, 0, 1327, 1340, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 974, 1323, - 988, 0, 1324, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1325, 0, 0, 1326, + 0, 0, 0, 1341, 0, 0, 0, 0, 0, 0, + 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, + 2225, 0, 0, 0, 0, 0, 0, 0, 0, 2229, + -1727, 0, 2230, 0, 0, 2232, 0, 1333, 1334, 1335, + 1336, 1337, 1338, 0, 0, 0, 0, 0, 1329, 0, + 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, + 1338, 2252, 2253, 0, 0, 0, 0, 0, 1967, 0, + 0, 0, 1983, 1984, 1985, 2263, 1986, 1987, 1988, 1989, + 1990, 1991, 0, 0, 2269, 0, 0, 2272, 0, 2274, + 0, 0, 0, 0, 0, 0, 0, 2278, 0, 1308, + 0, 0, 1309, 0, 0, 2285, 2286, 1310, 1311, 1312, + 0, 0, 1318, 0, 0, 0, 0, 0, 0, 1341, + 1341, 1341, 0, 0, 1313, 0, 0, 2266, 1319, 0, + 0, 0, 1315, 1320, 2326, 0, 0, 0, 0, 1316, + 0, 1341, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1321, 1322, 0, 2340, 0, + 0, 0, 0, 0, 1317, 0, 0, 0, 0, 1323, + 0, 0, 0, 0, 0, 2353, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1308, + 0, 0, 1309, 0, 0, 0, 0, 1310, 1311, 1312, + 0, 0, 0, 0, 0, 0, 0, 1324, 0, 0, + 1325, 1341, 0, 0, 1313, 0, 0, 1341, 0, 0, + 0, 0, 1315, 0, 1326, 0, 0, 1327, 0, 1316, + 1992, 1992, 1341, 0, 1636, 1636, 1636, 1636, 0, 0, + 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, + 1992, 0, 0, 0, 1317, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1318, 0, 0, 0, 1341, 0, + 0, 1341, 0, 1341, 0, 0, 0, 1992, 1992, 0, + 1319, 0, 0, 0, 0, 1320, 0, 0, 0, 2479, + 0, 1341, 1636, 1636, 1341, 0, 1341, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1321, 1322, 0, + 0, 0, 0, 0, 0, 0, 1328, 0, 0, 0, + 0, 1323, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2492, 2493, 0, 0, 0, + 2494, 0, 0, 0, 0, 2497, 0, 0, 2500, 2501, + 0, 0, 0, 2505, 1318, 0, 0, 0, 0, 1324, + 0, 0, 1325, 0, 0, 0, 0, 0, 0, 1341, + 1319, 0, 0, 0, 0, 1320, 1326, 0, 0, 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1321, 1322, 0, + 0, 0, 0, 0, 0, 0, 894, 0, 0, 0, + 0, 1323, 0, 0, 0, 0, 1329, 0, 0, 1330, + 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2591, 0, 0, 0, 0, 0, 0, 1324, + 0, 1308, 1325, 0, 1309, 0, 0, 0, 0, 1310, + 1311, 1312, 0, 0, 0, 0, 1326, 0, 1328, 1327, + 0, 0, 0, 0, 0, 0, 1313, 0, 0, 0, + 0, 0, 1341, 0, 1315, 0, 1341, 1341, 0, 1341, + 0, 1316, 1992, 1992, 1992, 1992, 0, 0, 0, 1992, + 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1341, + 1341, 0, 0, 0, 0, 0, 1317, 0, 0, 0, + 1341, 0, 0, 0, 972, 0, 1341, 0, 0, 1341, + 973, 1341, 0, 0, 0, 1341, 0, 985, 1992, 1992, + 0, 0, 1341, 1341, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2011, 986, 0, 1328, 0, + 0, 0, 0, 2645, 2646, 0, 0, 2647, 1329, 0, + 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, + 1338, 0, 0, 1341, 0, 1658, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1341, 0, 0, + 0, 0, 0, 2686, 2687, 0, 0, 987, 0, 0, + 1341, 0, 0, 0, 1308, 0, 1318, 1309, 2701, 0, + 0, 0, 1310, 1311, 1312, 0, 0, 0, 0, 0, + 0, 0, 1319, 0, 0, 0, 974, 1320, 0, 1313, + 0, 0, 0, 0, 0, 0, 0, 1315, 0, 0, + 0, 0, 506, 0, 1316, 0, 0, 0, 1329, 1321, + 1322, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, + 1338, 0, 0, 1323, 0, 1658, 0, 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 989, 0, 0, 1635, 0, 0, 0, 0, 990, 988, + 0, 0, 0, 0, 0, 0, 0, 988, 0, 0, + 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, + 0, 1324, 0, 0, 1325, 0, 0, 0, 0, 0, + 0, 508, 0, 0, 0, 0, 0, 0, 1326, 2778, + 0, 1327, 0, 0, 0, 0, 1341, 0, 0, 0, + 1636, 0, 0, 0, 1293, 0, 0, 989, 0, 1341, + 1341, 1341, 0, 0, 1341, 990, 0, 1341, 1341, 0, + 2800, 0, 1341, 0, 0, 0, 0, 991, 0, 0, + 0, 0, 0, 0, 2814, 509, 0, 0, 0, 1318, + 0, 0, 0, 0, 510, 0, 0, 0, 975, 0, + 0, 0, 0, 0, 0, 1319, 511, 0, 992, 0, + 1320, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 991, 0, 1340, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1328, 0, 0, 1329, 1330, - 1331, 975, 1332, 1333, 1334, 1335, 1336, 1337, 0, 0, - 0, 992, 2266, 0, 0, 0, 0, 1327, 0, 989, - 0, 0, 0, 0, 0, 0, 0, 990, 0, 0, - 1991, 1635, 0, 0, 0, 0, 1340, 1340, 1340, 991, + 1328, 0, 1321, 1322, 0, 0, 0, 0, 513, 1636, + 0, 0, 0, 0, 0, 0, 1323, 0, 0, 993, + 0, 0, 0, 977, 0, 994, 0, 0, 1341, 0, + 0, 0, 0, 0, 0, 0, 2686, 0, 0, 0, + 2862, 0, 0, 0, 0, 0, 0, 995, 0, 0, + 0, 0, 514, 996, 1324, 0, 515, 1325, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 997, 2885, 0, + 0, 1326, 0, 0, 1327, 0, 1992, 1636, 0, 0, + 0, 0, 1341, 1341, 1341, 0, 0, 0, 2899, 2899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 993, 0, 0, 0, 977, 0, 994, 0, 0, - 975, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 992, 0, 0, 0, 0, 0, 0, 1340, 1340, 995, - 0, 0, 0, 0, 0, 996, 0, 0, 0, 0, - 0, 1340, 0, 0, 0, 0, 0, 0, 0, 997, - 0, 0, 0, 1991, 0, 0, 0, 0, 0, 0, - 1830, 0, 0, 0, 977, 0, 994, 1328, 0, 0, - 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, 1336, 1337, - 0, 0, 0, 0, 2354, 0, 0, 0, 995, 0, - 0, 0, 0, 0, 1831, 0, 0, 0, 0, 0, - 0, 1991, 979, 0, 0, 0, 0, 0, 997, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1340, + 1329, 0, 2686, 1330, 1331, 1332, 0, 1333, 1334, 1335, + 1336, 1337, 1338, 0, 0, 0, 0, 2018, 0, 516, + 979, 0, 0, 1341, 1341, 0, 0, 0, 0, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 1341, 0, + 0, 2899, 0, 0, 0, 0, 0, 0, 0, 1992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1328, 0, 0, 518, 0, 0, 519, + 0, 0, 0, 0, 0, 0, 0, 520, 0, 0, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1992, 0, 522, + 0, 0, 0, 0, 0, 0, 0, 0, 2899, 0, + 0, 0, 523, 0, 0, 1341, 0, 0, 0, 524, + 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, + 0, 0, 0, 0, 526, 0, 0, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1340, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1340, 0, 0, 0, 0, - 0, 979, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1009, 814, 547, 815, 816, 817, 818, - 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 1010, 101, 102, - 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, - 0, 106, 107, 108, 1011, 110, 111, 112, 113, 821, - 1012, 822, 823, 1340, 118, 119, 120, 121, 122, 123, - 824, 825, 124, 125, 826, 827, 128, 1340, 129, 130, - 131, 132, 828, 0, 1013, 0, 135, 136, 137, 138, - 139, 140, 1014, 142, 143, 144, 0, 145, 146, 147, - 148, 149, 150, 0, 1015, 152, 153, 154, 830, 831, - 832, 1016, 834, 835, 836, 156, 157, 158, 159, 160, - 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 1017, 0, 178, 179, 675, 181, 182, 0, 183, 184, - 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, - 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, - 201, 843, 203, 0, 204, 0, 205, 1018, 0, 1019, - 208, 209, 210, 1020, 212, 0, 213, 0, 844, 845, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 1021, - 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, - 234, 0, 235, 1022, 237, 238, 239, 240, 241, 242, - 846, 847, 0, 848, 0, 246, 1023, 1024, 249, 1025, - 251, 252, 253, 254, 255, 0, 0, 256, 1026, 258, - 1027, 0, 260, 261, 262, 849, 850, 263, 264, 265, - 266, 267, 1028, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 851, 1029, 852, 290, 291, 292, 293, 853, 294, - 295, 1030, 297, 854, 855, 299, 856, 301, 302, 303, - 0, 304, 305, 0, 0, 857, 307, 308, 0, 0, - 309, 310, 1031, 312, 1032, 858, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, - 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 860, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 1033, 364, - 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 862, 384, 385, 386, 387, 388, 1034, 390, 391, 863, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 1035, 406, 864, 408, 0, 409, 410, - 0, 411, 1036, 413, 414, 415, 416, 417, 0, 865, - 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, - 426, 1037, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, - 442, 443, 872, 1038, 445, 1039, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, - 0, 0, 0, 874, 875, 1040, 0, 0, 0, 0, - 877, 0, 878, 1041, 0, 0, 0, 879, 0, 880, - 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 0, 0, 0, 820, 0, 0, 104, 105, 0, 106, - 107, 108, 109, 110, 111, 112, 113, 821, 115, 822, - 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, - 124, 125, 826, 827, 128, 0, 129, 130, 131, 132, - 828, 0, 829, 0, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, - 150, 0, 151, 152, 153, 154, 830, 831, 832, 833, - 834, 835, 836, 156, 157, 158, 159, 160, 161, 162, - 837, 838, 165, 839, 166, 0, 167, 168, 169, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, - 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, - 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, - 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, - 203, 0, 204, 0, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, - 235, 236, 237, 238, 239, 240, 241, 242, 846, 847, - 0, 848, 0, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 0, 0, 256, 257, 258, 259, 0, - 260, 261, 262, 849, 850, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 851, - 288, 852, 290, 291, 292, 293, 853, 294, 295, 296, - 297, 854, 855, 299, 856, 301, 302, 303, 0, 304, - 305, 0, 0, 857, 307, 308, 0, 0, 309, 310, - 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, - 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 860, 344, 345, 346, 347, 0, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, - 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 26, 379, 380, 381, 382, 383, 862, 384, - 385, 386, 387, 388, 389, 390, 391, 863, 393, 0, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 864, 408, 0, 409, 410, 31, 411, - 412, 413, 414, 415, 416, 417, 0, 865, 866, 0, - 0, 420, 421, 867, 423, 868, 869, 425, 426, 870, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, - 436, 437, 871, 0, 438, 439, 440, 441, 442, 575, - 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, - 451, 0, 34, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 873, 0, 35, 0, 0, 0, - 0, 874, 875, 0, 0, 0, 0, 0, 877, 0, - 878, 2789, 0, 0, 0, 879, 0, 880, 881, 92, - 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, - 0, 820, 0, 0, 104, 105, 0, 106, 107, 108, - 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, - 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, - 826, 827, 128, 0, 129, 130, 131, 132, 828, 0, - 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, - 151, 152, 153, 154, 830, 831, 832, 833, 834, 835, - 836, 156, 157, 158, 159, 160, 161, 162, 837, 838, - 165, 839, 166, 0, 167, 168, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, - 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, - 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, - 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, - 204, 0, 205, 206, 0, 207, 208, 209, 210, 211, - 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 241, 242, 846, 847, 0, 848, - 0, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, - 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 851, 288, 852, - 290, 291, 292, 293, 853, 294, 295, 296, 297, 854, - 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, - 0, 857, 307, 308, 0, 0, 309, 310, 311, 312, - 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 26, 379, 380, 381, 382, 383, 862, 384, 385, 386, - 387, 388, 389, 390, 391, 863, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 864, 408, 0, 409, 410, 31, 411, 412, 413, - 414, 415, 416, 417, 0, 865, 866, 0, 0, 420, - 421, 867, 423, 868, 869, 425, 426, 870, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 871, 0, 438, 439, 440, 441, 442, 575, 872, 0, - 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, - 34, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 873, 0, 35, 0, 0, 0, 0, 874, - 875, 0, 0, 0, 0, 0, 877, 0, 878, 0, - 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, + 0, 1341, 0, 0, 0, 0, 0, 0, 0, 527, + 0, 0, 0, 1329, 0, 0, 1330, 1331, 1332, 0, + 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 0, 0, + 2228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1341, + 0, 0, 0, 0, 0, 0, 0, 1009, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 820, - 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, - 111, 112, 113, 821, 115, 822, 823, 1644, 118, 119, + 0, 0, 1341, 93, 94, 95, 96, 97, 98, 99, + 100, 1010, 101, 102, 103, 0, 1341, 0, 0, 820, + 0, 0, 104, 105, 0, 106, 107, 108, 1011, 110, + 111, 112, 113, 821, 1012, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, - 128, 0, 129, 130, 131, 132, 828, 0, 829, 0, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 151, 152, - 153, 154, 830, 831, 832, 833, 834, 835, 836, 156, + 128, 0, 129, 130, 131, 132, 828, 0, 1013, 0, + 135, 136, 137, 138, 139, 140, 1014, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 1015, 152, + 153, 154, 830, 831, 832, 1016, 834, 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, + 174, 175, 176, 177, 1017, 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, 204, 0, - 205, 206, 1645, 207, 208, 209, 210, 211, 212, 0, + 205, 1018, 0, 1019, 208, 209, 210, 1020, 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, - 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, + 221, 222, 223, 1021, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 1022, 237, 238, 239, 240, 241, 242, 846, 847, 0, 848, 0, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, - 1646, 256, 257, 258, 259, 0, 260, 261, 262, 849, - 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 1023, 1024, 249, 1025, 251, 252, 253, 254, 255, 0, + 0, 256, 1026, 258, 1027, 0, 260, 261, 262, 849, + 850, 263, 264, 265, 266, 267, 1028, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 851, 288, 852, 290, 291, - 292, 293, 853, 294, 295, 296, 297, 854, 855, 299, + 282, 283, 284, 285, 286, 851, 1029, 852, 290, 291, + 292, 293, 853, 294, 295, 1030, 297, 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, 0, 857, - 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, + 307, 308, 0, 0, 309, 310, 1031, 312, 1032, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 1033, 364, 365, 366, 861, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, + 388, 1034, 390, 391, 863, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 1035, 406, + 864, 408, 0, 409, 410, 0, 411, 1036, 413, 414, + 415, 416, 417, 0, 865, 866, 0, 0, 420, 421, + 867, 423, 868, 869, 425, 426, 1037, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, + 0, 438, 439, 440, 441, 442, 443, 872, 1038, 445, + 1039, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, + 1040, 0, 0, 0, 0, 877, 0, 878, 1041, 0, + 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, + 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, + 0, 101, 102, 103, 0, 0, 0, 0, 820, 0, + 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, + 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, + 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, + 0, 129, 130, 131, 132, 828, 0, 829, 0, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, + 145, 146, 147, 148, 149, 150, 0, 151, 152, 153, + 154, 830, 831, 832, 833, 834, 835, 836, 156, 157, + 158, 159, 160, 161, 162, 837, 838, 165, 839, 166, + 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, + 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, + 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, + 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, + 199, 0, 200, 201, 843, 203, 0, 204, 0, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 0, 213, + 0, 844, 845, 216, 0, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 241, 242, 846, 847, 0, 848, 0, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 0, 0, + 256, 257, 258, 259, 0, 260, 261, 262, 849, 850, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 851, 288, 852, 290, 291, 292, + 293, 853, 294, 295, 296, 297, 854, 855, 299, 856, + 301, 302, 303, 0, 304, 305, 0, 0, 857, 307, + 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, + 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, + 371, 372, 373, 374, 375, 376, 377, 378, 26, 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, - 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, - 416, 417, 0, 865, 866, 0, 1647, 420, 421, 867, + 408, 0, 409, 410, 31, 411, 412, 413, 414, 415, + 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, - 438, 439, 440, 441, 442, 443, 872, 0, 445, 446, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, + 438, 439, 440, 441, 442, 575, 872, 0, 445, 446, + 447, 448, 449, 450, 0, 0, 451, 0, 34, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 873, 0, 0, 0, 0, 0, 0, 874, 875, 0, - 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, + 873, 0, 35, 0, 0, 0, 0, 874, 875, 0, + 0, 0, 0, 0, 877, 0, 878, 2790, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, -1017, - 101, 102, 103, 0, 0, 0, -1017, 820, 0, 0, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, @@ -4765,16 +4629,66 @@ static const yytype_int16 yytable[] = 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 860, 344, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 860, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 363, 364, 365, 366, 861, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 26, 379, 380, + 381, 382, 383, 862, 384, 385, 386, 387, 388, 389, + 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 864, 408, + 0, 409, 410, 31, 411, 412, 413, 414, 415, 416, + 417, 0, 865, 866, 0, 0, 420, 421, 867, 423, + 868, 869, 425, 426, 870, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, + 439, 440, 441, 442, 575, 872, 0, 445, 446, 447, + 448, 449, 450, 0, 0, 451, 0, 34, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, + 0, 35, 0, 0, 0, 0, 874, 875, 0, 0, + 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, + 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, + 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, + 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, + 821, 115, 822, 823, 1645, 118, 119, 120, 121, 122, + 123, 824, 825, 124, 125, 826, 827, 128, 0, 129, + 130, 131, 132, 828, 0, 829, 0, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 154, 830, + 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, + 160, 161, 162, 837, 838, 165, 839, 166, 0, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, + 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, + 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, + 200, 201, 843, 203, 0, 204, 0, 205, 206, 1646, + 207, 208, 209, 210, 211, 212, 0, 213, 0, 844, + 845, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, + 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, + 242, 846, 847, 0, 848, 0, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 0, 1647, 256, 257, + 258, 259, 0, 260, 261, 262, 849, 850, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 851, 288, 852, 290, 291, 292, 293, 853, + 294, 295, 296, 297, 854, 855, 299, 856, 301, 302, + 303, 0, 304, 305, 0, 0, 857, 307, 308, 0, + 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, - 391, 863, 393, -1017, 394, 395, 396, 397, 398, 399, + 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, - 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, + 0, 865, 866, 0, 1648, 420, 421, 867, 423, 868, 869, 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, 443, 872, 0, 445, 446, 447, 448, @@ -4785,8 +4699,8 @@ static const yytype_int16 yytable[] = 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, + 94, 95, 96, 97, 98, 99, 100, -601, 101, 102, + 103, 0, 0, 0, -601, 820, 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, @@ -4815,27 +4729,77 @@ static const yytype_int16 yytable[] = 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 860, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, - 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 862, 384, 385, 386, 387, 388, 389, 390, 391, 863, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, - 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, - 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, - 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, - 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, + 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, + 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, + 863, 393, -601, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 864, 408, 0, 409, + 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, + 865, 866, 0, 0, 420, 421, 867, 423, 868, 869, + 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, + 441, 442, 443, 872, 0, 445, 446, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, + 0, 0, 0, 0, 874, 875, 0, 0, 0, 0, + 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, + 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, + 0, 0, 0, 0, 820, 0, 0, 104, 105, 0, + 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, + 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, + 825, 124, 125, 826, 827, 128, 0, 129, 130, 131, + 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 150, 0, 151, 152, 153, 154, 830, 831, 832, + 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, + 162, 837, 838, 165, 839, 166, 0, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, + 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, + 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, + 843, 203, 0, 204, 0, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, + 847, 0, 848, 0, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, + 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 851, 288, 852, 290, 291, 292, 293, 853, 294, 295, + 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, + 304, 305, 0, 0, 857, 307, 308, 0, 0, 309, + 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, + 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, + 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, + 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, + 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, + 862, 384, 385, 386, 387, 388, 389, 390, 391, 863, + 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, + 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, + 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, + 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, + 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, + 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, 876, 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, - 881, 92, 1401, 547, 815, 816, 817, 1402, 819, 0, + 881, 92, 1395, 547, 815, 816, 817, 1396, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, - 96, 97, 98, 99, 100, 1403, 101, 102, 103, 0, + 96, 97, 98, 99, 100, 1397, 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, @@ -4865,56 +4829,156 @@ static const yytype_int16 yytable[] = 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 860, 344, 345, 346, 347, 0, + 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, + 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, + 384, 385, 386, 387, 388, 389, 390, 391, 863, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, + 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, + 0, 0, 420, 421, 867, 423, 868, 869, 425, 426, + 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, + 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, + 0, 0, 874, 875, 0, 0, 0, 0, 0, 877, + 0, 878, 0, 0, 0, 0, 879, 0, 880, 881, + 1009, 814, 547, 815, 816, 817, 818, 819, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, + 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, + 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, + 108, 1011, 110, 111, 112, 113, 821, 1012, 822, 823, + 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, + 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, + 0, 1013, 0, 135, 136, 137, 138, 139, 140, 1014, + 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, + 0, 1015, 152, 153, 154, 830, 831, 832, 1016, 834, + 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, + 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, + 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, + 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, + 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, + 0, 204, 0, 205, 1018, 0, 1019, 208, 209, 210, + 1020, 212, 0, 213, 0, 844, 845, 216, 0, 217, + 218, 219, 220, 221, 222, 223, 1021, 225, 226, 227, + 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, + 1022, 237, 238, 239, 240, 241, 242, 846, 847, 0, + 848, 0, 246, 1023, 1024, 249, 1025, 251, 252, 253, + 254, 255, 0, 0, 256, 1026, 258, 1027, 0, 260, + 261, 262, 849, 850, 263, 264, 265, 266, 267, 1028, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 851, 1029, + 852, 290, 291, 292, 293, 853, 294, 295, 1030, 297, + 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, + 0, 0, 857, 307, 308, 0, 0, 309, 310, 1031, + 312, 1032, 858, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, + 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, + 358, 359, 360, 0, 361, 362, 1033, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, 384, - 385, 386, 387, 388, 389, 390, 391, 863, 393, 0, + 385, 386, 387, 388, 1034, 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 864, 408, 0, 409, 410, 0, 411, - 412, 413, 414, 415, 416, 417, 0, 865, 866, 0, - 0, 420, 421, 867, 423, 868, 869, 425, 426, 870, + 404, 1035, 406, 864, 408, 0, 409, 410, 0, 411, + 1036, 413, 414, 415, 416, 417, 0, 865, 866, 0, + 0, 420, 421, 867, 423, 868, 869, 425, 426, 1037, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, 443, - 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, + 872, 0, 445, 1039, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, 0, 0, 877, 0, - 878, 0, 0, 0, 0, 879, 0, 880, 881, 1009, + 878, 1514, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, 108, - 1011, 110, 111, 112, 113, 821, 1012, 822, 823, 0, + 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, 0, - 1013, 0, 135, 136, 137, 138, 139, 140, 1014, 142, + 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, - 1015, 152, 153, 154, 830, 831, 832, 1016, 834, 835, + 151, 152, 153, 154, 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, - 204, 0, 205, 1018, 0, 1019, 208, 209, 210, 1020, + 204, 0, 205, 206, 0, 207, 208, 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, - 219, 220, 221, 222, 223, 1021, 225, 226, 227, 228, - 0, 229, 230, 231, 232, 233, 234, 0, 235, 1022, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, 847, 0, 848, - 0, 246, 1023, 1024, 249, 1025, 251, 252, 253, 254, - 255, 0, 0, 256, 1026, 258, 1027, 0, 260, 261, - 262, 849, 850, 263, 264, 265, 266, 267, 1028, 269, + 0, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 851, 1029, 852, - 290, 291, 292, 293, 853, 294, 295, 1030, 297, 854, + 280, 281, 282, 283, 284, 285, 286, 851, 288, 852, + 290, 291, 292, 293, 853, 294, 295, 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, - 0, 857, 307, 308, 0, 0, 309, 310, 1031, 312, - 1032, 858, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 857, 307, 308, 0, 0, 309, 310, 311, 312, + 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, + 386, 387, 388, 389, 390, 391, 863, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, + 413, 414, 415, 416, 417, 0, 865, 866, 0, 0, + 420, 421, 867, 423, 868, 869, 425, 426, 870, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 871, 0, 438, 439, 440, 441, 442, 443, 872, + 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, + 874, 875, 0, 0, 0, 0, 0, 877, 0, 878, + 1639, 0, 0, 0, 879, 0, 880, 881, 1009, 814, + 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, + 820, 0, 0, 104, 105, 0, 106, 107, 108, 1011, + 110, 111, 112, 113, 821, 1012, 822, 823, 0, 118, + 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, + 827, 128, 0, 129, 130, 131, 132, 828, 0, 1013, + 0, 135, 136, 137, 138, 139, 140, 1014, 142, 143, + 144, 0, 145, 146, 147, 148, 149, 150, 0, 1015, + 152, 153, 154, 830, 831, 832, 1016, 834, 835, 836, + 156, 157, 158, 159, 160, 161, 162, 837, 838, 165, + 839, 166, 0, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 0, 0, 178, 179, 675, + 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, + 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, + 841, 842, 199, 0, 200, 201, 843, 203, 0, 204, + 0, 205, 1018, 0, 1019, 208, 209, 210, 1020, 212, + 0, 213, 0, 844, 845, 216, 0, 217, 218, 219, + 220, 221, 222, 223, 1021, 225, 226, 227, 228, 0, + 229, 230, 231, 232, 233, 234, 0, 235, 1022, 237, + 238, 239, 240, 241, 242, 846, 847, 0, 848, 0, + 246, 1023, 1024, 249, 1025, 251, 252, 253, 254, 255, + 0, 0, 256, 1026, 258, 1027, 0, 260, 261, 262, + 849, 850, 263, 264, 265, 266, 267, 1028, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 851, 1029, 852, 290, + 291, 292, 293, 853, 294, 295, 1030, 297, 854, 855, + 299, 856, 301, 302, 303, 0, 304, 305, 0, 0, + 857, 307, 308, 0, 0, 309, 310, 1031, 312, 1032, + 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, + 333, 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 1033, 364, 365, 366, 861, 368, @@ -4926,12 +4990,12 @@ static const yytype_int16 yytable[] = 414, 415, 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, 426, 1037, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 871, 0, 438, 439, 440, 441, 442, 443, 872, 0, + 871, 0, 438, 439, 440, 441, 442, 443, 872, 1857, 445, 1039, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, - 875, 0, 0, 0, 0, 0, 877, 0, 878, 1522, + 875, 0, 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, @@ -4949,7 +5013,7 @@ static const yytype_int16 yytable[] = 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, 204, 0, - 205, 206, 0, 207, 208, 209, 210, 211, 212, 0, + 205, 206, 1646, 207, 208, 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, @@ -4964,7 +5028,57 @@ static const yytype_int16 yytable[] = 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, + 388, 389, 390, 391, 863, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, + 415, 416, 417, 0, 865, 866, 0, 0, 420, 421, + 867, 423, 868, 869, 425, 426, 870, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, + 0, 438, 439, 440, 441, 442, 443, 872, 0, 445, + 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, + 0, 0, 0, 0, 0, 877, 0, 878, 0, 0, + 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, + 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, + 0, 101, 102, 103, 0, 0, 0, 0, 820, 0, + 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, + 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, + 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, + 0, 129, 130, 131, 132, 828, 0, 829, 0, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, + 145, 146, 147, 148, 149, 150, 0, 151, 152, 153, + 154, 830, 831, 832, 833, 834, 835, 836, 156, 157, + 158, 159, 160, 161, 162, 837, 838, 165, 839, 166, + 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, + 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, + 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, + 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, + 199, 0, 200, 201, 843, 203, 0, 204, 0, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 0, 213, + 0, 844, 845, 216, 0, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, + 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, + 240, 241, 242, 846, 847, 0, 848, 0, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 0, 0, + 256, 257, 258, 259, 0, 260, 261, 262, 849, 850, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 851, 288, 852, 290, 291, 292, + 293, 853, 294, 295, 296, 297, 854, 855, 299, 856, + 301, 302, 303, 0, 304, 305, 0, 0, 857, 307, + 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, + 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, @@ -4981,7 +5095,7 @@ static const yytype_int16 yytable[] = 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, 0, - 0, 0, 0, 0, 877, 0, 878, 1638, 0, 0, + 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, 881, 1009, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, @@ -5014,25 +5128,75 @@ static const yytype_int16 yytable[] = 0, 0, 309, 310, 1031, 312, 1032, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 860, 344, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 860, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 1033, 364, 365, 366, 861, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 862, 384, 385, 386, 387, 388, 1034, + 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 1035, 406, 864, 408, + 0, 409, 410, 0, 411, 1036, 413, 414, 415, 416, + 417, 0, 865, 866, 0, 0, 420, 421, 867, 423, + 868, 869, 425, 426, 1037, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, + 439, 440, 441, 442, 443, 872, 0, 445, 1039, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, + 0, 0, 0, 0, 0, 0, 874, 875, 0, 0, + 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, + 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, + 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, + 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, + 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, + 123, 824, 825, 124, 125, 826, 827, 128, 0, 129, + 130, 131, 132, 828, 0, 829, 0, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 154, 830, + 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, + 160, 161, 162, 837, 838, 165, 839, 166, 0, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, + 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, + 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, + 200, 201, 843, 203, 0, 204, 0, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 0, 213, 0, 844, + 845, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, + 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, + 242, 846, 847, 0, 848, 0, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 0, 0, 256, 257, + 258, 259, 0, 260, 261, 262, 849, 850, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 851, 288, 852, 290, 291, 292, 293, 853, + 294, 295, 296, 297, 854, 855, 299, 856, 301, 302, + 303, 0, 304, 305, 0, 0, 857, 307, 308, 0, + 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 1033, 364, 365, 366, 861, 368, 369, 370, 371, 372, + 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 862, 384, 385, 386, 387, 388, 1034, 390, + 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 1035, 406, 864, 408, 0, - 409, 410, 0, 411, 1036, 413, 414, 415, 416, 417, + 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, + 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, - 869, 425, 426, 1037, 428, 429, 430, 431, 432, 0, + 869, 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, - 440, 441, 442, 443, 872, 1856, 445, 1039, 447, 448, + 440, 441, 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, - 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, + 0, 0, 0, 0, 0, 1400, 1401, 0, 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, - 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, + 0, 880, 881, 92, 1768, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, @@ -5048,7 +5212,7 @@ static const yytype_int16 yytable[] = 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, - 201, 843, 203, 0, 204, 0, 205, 206, 1645, 207, + 201, 843, 203, 0, 204, 0, 205, 206, 0, 207, 208, 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, @@ -5064,7 +5228,57 @@ static const yytype_int16 yytable[] = 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 860, 344, 345, 346, + 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, + 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, + 863, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 864, 408, 0, 409, + 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, + 865, 866, 0, 0, 420, 421, 867, 423, 868, 869, + 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, + 441, 442, 443, 872, 0, 445, 446, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, + 0, 0, 0, 0, 874, 875, 0, 0, 0, 0, + 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, + 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, + 0, 0, 0, 0, 820, 0, 0, 104, 105, 0, + 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, + 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, + 825, 124, 125, 826, 827, 128, 0, 129, 130, 131, + 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 150, 0, 151, 152, 153, 154, 830, 831, 832, + 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, + 162, 837, 838, 165, 839, 166, 0, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, + 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, + 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, + 843, 203, 0, 204, 0, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, + 847, 0, 848, 0, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, + 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 851, 288, 852, 290, 291, 292, 293, 853, 294, 295, + 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, + 304, 305, 0, 0, 857, 307, 308, 0, 0, 309, + 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, + 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, + 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, @@ -5081,7 +5295,7 @@ static const yytype_int16 yytable[] = 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, 0, 0, - 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, + 877, 0, 2010, 0, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, @@ -5091,7 +5305,7 @@ static const yytype_int16 yytable[] = 124, 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, - 150, 0, 151, 152, 153, 154, 830, 831, 832, 833, + 150, 0, 151, 152, 2676, 154, 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, @@ -5099,7 +5313,7 @@ static const yytype_int16 yytable[] = 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, 204, 0, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, + 210, 211, 212, 0, 213, 0, 2677, 845, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, 847, @@ -5114,7 +5328,57 @@ static const yytype_int16 yytable[] = 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 860, 344, 345, 346, 347, 0, + 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, + 2678, 861, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, + 384, 385, 386, 387, 388, 389, 390, 391, 863, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, + 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, + 0, 0, 420, 421, 867, 423, 868, 869, 425, 426, + 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, + 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, + 0, 0, 874, 875, 0, 0, 0, 0, 0, 877, + 0, 2679, 0, 0, 0, 0, 879, 0, 880, 881, + 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, + 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, + 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, + 108, 109, 110, 111, 112, 2896, 821, 115, 822, 823, + 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, + 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, + 0, 829, 0, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, + 0, 151, 152, 153, 2897, 830, 831, 832, 833, 834, + 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, + 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, + 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, + 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, + 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, + 0, 204, 0, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 0, 213, 0, 844, 845, 216, 0, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 241, 242, 846, 847, 0, + 848, 0, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 0, 0, 256, 257, 258, 259, 0, 260, + 261, 262, 849, 850, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 851, 288, + 852, 290, 291, 292, 293, 853, 294, 295, 296, 297, + 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, + 0, 0, 857, 307, 308, 0, 0, 309, 310, 311, + 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, + 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, @@ -5124,67 +5388,117 @@ static const yytype_int16 yytable[] = 404, 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, 426, 870, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, + 428, 429, 2898, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, 0, 0, 877, 0, - 878, 0, 0, 0, 0, 879, 0, 880, 881, 1009, + 878, 0, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, 108, - 1011, 110, 111, 112, 113, 821, 1012, 822, 823, 0, + 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, 0, - 1013, 0, 135, 136, 137, 138, 139, 140, 1014, 142, + 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, - 1015, 152, 153, 154, 830, 831, 832, 1016, 834, 835, + 151, 152, 153, 2897, 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, - 204, 0, 205, 1018, 0, 1019, 208, 209, 210, 1020, + 204, 0, 205, 206, 0, 207, 208, 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, - 219, 220, 221, 222, 223, 1021, 225, 226, 227, 228, - 0, 229, 230, 231, 232, 233, 234, 0, 235, 1022, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, 847, 0, 848, - 0, 246, 1023, 1024, 249, 1025, 251, 252, 253, 254, - 255, 0, 0, 256, 1026, 258, 1027, 0, 260, 261, - 262, 849, 850, 263, 264, 265, 266, 267, 1028, 269, + 0, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 851, 1029, 852, - 290, 291, 292, 293, 853, 294, 295, 1030, 297, 854, + 280, 281, 282, 283, 284, 285, 286, 851, 288, 852, + 290, 291, 292, 293, 853, 294, 295, 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, - 0, 857, 307, 308, 0, 0, 309, 310, 1031, 312, - 1032, 858, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 857, 307, 308, 0, 0, 309, 310, 311, 312, + 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, + 386, 387, 388, 389, 390, 391, 863, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, + 413, 414, 415, 416, 417, 0, 865, 866, 0, 0, + 420, 421, 867, 423, 868, 869, 425, 426, 870, 428, + 429, 2898, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 871, 0, 438, 439, 440, 441, 442, 443, 872, + 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 873, 0, 0, 0, 0, 0, 0, + 874, 875, 0, 0, 0, 0, 0, 877, 0, 878, + 0, 0, 0, 0, 879, 0, 880, 881, 92, 814, + 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, + 820, 0, 0, 104, 105, 0, 106, 107, 108, 109, + 110, 111, 112, -1727, 821, 115, 822, 823, 0, 118, + 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, + 827, 128, 0, 129, 130, 131, 132, 828, 0, 829, + 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 0, 145, 146, 147, 148, 149, 150, 0, 151, + 152, 153, 2897, 830, 831, 832, 833, 834, 835, 836, + 156, 157, 158, 159, 160, 161, 162, 837, 838, 165, + 839, 166, 0, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 0, 0, 178, 179, 675, + 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, + 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, + 841, 842, 199, 0, 200, 201, 843, 203, 0, 204, + 0, 205, 206, 0, 207, 208, 209, 210, -1727, 212, + 0, 213, 0, 844, 845, 216, 0, 217, 218, 219, + 220, 221, 222, 223, -1727, 225, 226, 227, 228, 0, + 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, + 238, 239, 240, 241, 242, 846, 847, 0, 848, 0, + 246, 0, 0, 249, 250, 251, 252, 253, 254, 255, + 0, 0, 256, 257, 258, -1727, 0, 260, 261, 262, + 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 851, 288, 852, 290, + 291, 292, 293, 0, 294, 295, 0, 297, 854, 855, + 299, 856, 301, 302, 303, 0, 304, 305, 0, 0, + 857, 307, 308, 0, 0, 309, 310, 311, 312, 313, + 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, + 333, 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 1033, 364, 365, 366, 861, 368, + 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, - 387, 388, 1034, 390, 391, 863, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 1035, - 406, 864, 408, 0, 409, 410, 0, 411, 1036, 413, + 387, 388, -1727, 390, 391, 863, 393, 0, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, 0, 0, 420, - 421, 867, 423, 868, 869, 425, 426, 1037, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, + 421, 867, 423, 868, 869, 425, 426, 870, 428, 429, + 2898, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, 443, 872, 0, - 445, 1039, 447, 448, 449, 450, 0, 0, 451, 0, + 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, + 471, 472, -1727, 0, 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 820, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, @@ -5192,7 +5506,7 @@ static const yytype_int16 yytable[] = 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, 151, 152, 153, 154, 830, 831, 832, 833, 834, 835, 836, 156, - 157, 158, 159, 160, 161, 162, 837, 838, 165, 839, + 157, 158, 159, 160, 161, 162, 837, 838, 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, @@ -5208,115 +5522,64 @@ static const yytype_int16 yytable[] = 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 851, 288, 852, 290, 291, - 292, 293, 853, 294, 295, 296, 297, 854, 855, 299, + 292, 293, 0, 294, 295, 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, 0, 857, 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, - 389, 390, 391, 863, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, - 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, - 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, - 423, 868, 869, 425, 426, 870, 428, 429, 430, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, - 438, 439, 440, 441, 442, 443, 872, 0, 445, 446, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 873, 0, 0, 0, 0, 0, 0, 1406, 1407, 0, - 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, - 0, 879, 0, 880, 881, 92, 1781, 547, 815, 816, - 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, - 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, - 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, - 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, - 129, 130, 131, 132, 828, 0, 829, 0, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 0, 151, 152, 153, 154, - 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, - 159, 160, 161, 162, 837, 838, 165, 839, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, - 0, 200, 201, 843, 203, 0, 204, 0, 205, 206, - 0, 207, 208, 209, 210, 211, 212, 0, 213, 0, - 844, 845, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 241, 242, 846, 847, 0, 848, 0, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 0, 0, 256, - 257, 258, 259, 0, 260, 261, 262, 849, 850, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 851, 288, 852, 290, 291, 292, 293, - 853, 294, 295, 296, 297, 854, 855, 299, 856, 301, - 302, 303, 0, 304, 305, 0, 0, 857, 307, 308, - 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 860, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, - 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, - 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, - 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, - 869, 425, 426, 870, 428, 429, 430, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, - 440, 441, 442, 443, 872, 0, 445, 446, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 873, 0, - 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, - 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, - 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, - 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, - 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, - 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, - 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, - 131, 132, 828, 0, 829, 0, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, - 148, 149, 150, 0, 151, 152, 153, 154, 830, 831, - 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, - 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, - 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, - 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, - 201, 843, 203, 0, 204, 0, 205, 206, 0, 207, - 208, 209, 210, 211, 212, 0, 213, 0, 844, 845, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, - 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, - 846, 847, 0, 848, 0, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 0, 0, 256, 257, 258, - 259, 0, 260, 261, 262, 849, 850, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 851, 288, 852, 290, 291, 292, 293, 853, 294, - 295, 296, 297, 854, 855, 299, 856, 301, 302, 303, - 0, 304, 305, 0, 0, 857, 307, 308, 0, 0, - 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, - 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 860, 344, 345, 346, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, + 388, 389, 390, 391, 863, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, + 415, 416, 417, 0, 865, 866, 0, 0, 420, 421, + 867, 423, 868, 869, 425, 426, 870, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, + 0, 438, 439, 440, 441, 442, 443, 872, 0, 445, + 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 0, 0, 0, 0, 0, 0, 0, 1631, 1632, + 0, 0, 92, 814, 547, 815, 816, 1633, 818, 819, + 0, 0, 0, 0, 880, 881, 0, 0, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, + 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, + 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, + 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, + 825, 124, 125, 826, 827, 128, 0, 129, 130, 131, + 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 150, 0, 151, 152, 153, 154, 830, 831, 832, + 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, + 162, 837, 838, 165, 0, 166, 0, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, + 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, + 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, + 843, 203, 0, 204, 0, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 0, 213, 0, 844, 845, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, + 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, + 847, 0, 848, 0, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, + 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 851, 288, 852, 290, 291, 292, 293, 0, 294, 295, + 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, + 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, + 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, + 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, + 338, 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, - 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, + 365, 366, 1754, 1755, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, @@ -5328,47 +5591,97 @@ static const yytype_int16 yytable[] = 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 873, 0, 0, 0, - 0, 0, 0, 874, 875, 0, 0, 0, 0, 0, - 877, 0, 2009, 0, 0, 0, 0, 879, 0, 880, + 467, 468, 469, 470, 471, 472, 0, 0, 0, 0, + 0, 0, 0, 1756, 1757, 0, 0, 0, 0, 0, + 0, 0, 1633, 0, 0, 0, 0, 0, 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 0, 0, 0, 820, 0, 0, 104, 105, 0, 106, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, - 150, 0, 151, 152, 2675, 154, 830, 831, 832, 833, + 150, 0, 151, 152, 153, 154, 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, 162, - 837, 838, 165, 839, 166, 0, 167, 168, 169, 170, + 837, 838, 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, 204, 0, 205, 206, 0, 207, 208, 209, - 210, 211, 212, 0, 213, 0, 2676, 845, 216, 0, + 210, 211, 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, 846, 847, - 0, 848, 0, 246, 247, 248, 249, 250, 251, 252, + 0, 848, 0, 246, 0, 248, 249, 250, 251, 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 851, - 288, 852, 290, 291, 292, 293, 853, 294, 295, 296, + 288, 852, 290, 291, 292, 293, 0, 294, 295, 296, 297, 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, 0, 857, 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 860, 344, 345, 346, 347, 0, + 339, 0, 340, 341, 342, 860, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, + 384, 385, 386, 387, 388, 389, 390, 391, 863, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, + 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, + 0, 0, 420, 421, 867, 423, 868, 869, 425, 426, + 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, + 443, 872, 0, 445, 446, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 0, 0, 0, 0, 0, + 0, 0, 1631, 1632, 0, 0, 0, 0, 0, 0, + 0, 1633, 0, 0, 0, 0, 0, 0, 880, 881, + 92, 814, 547, 815, 816, 817, 818, 819, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, + 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, + 0, 0, 820, 0, 0, 104, 105, 0, 106, 107, + 108, 109, 110, 111, 112, 0, 821, 115, 822, 823, + 0, 118, 119, 120, 121, 122, 123, 824, 825, 124, + 125, 826, 827, 128, 0, 129, 130, 131, 132, 828, + 0, 829, 0, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, + 0, 151, 152, 153, 154, 830, 831, 832, 833, 834, + 835, 836, 156, 157, 158, 159, 160, 161, 162, 837, + 838, 165, 839, 166, 0, 167, 168, 169, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, + 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, + 0, 188, 0, 189, 190, 191, 192, 840, 194, 195, + 196, 197, 841, 842, 199, 0, 200, 201, 843, 203, + 0, 204, 0, 205, 206, 0, 207, 208, 209, 210, + 0, 212, 0, 213, 0, 844, 845, 216, 0, 217, + 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, + 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, + 236, 237, 238, 239, 240, 241, 242, 846, 847, 0, + 848, 0, 246, 0, 0, 249, 250, 251, 252, 253, + 254, 255, 0, 0, 256, 257, 258, 0, 0, 260, + 261, 262, 849, 850, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 851, 288, + 852, 290, 291, 292, 293, 0, 294, 295, 0, 297, + 854, 855, 299, 856, 301, 302, 303, 0, 304, 305, + 0, 0, 857, 307, 308, 0, 0, 309, 310, 311, + 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, + 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 0, 340, 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 363, 364, 365, 2677, + 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, 384, - 385, 386, 387, 388, 389, 390, 391, 863, 393, 0, + 385, 386, 387, 388, 0, 390, 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, 866, 0, @@ -5378,451 +5691,199 @@ static const yytype_int16 yytable[] = 872, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 873, 0, 0, 0, 0, 0, - 0, 874, 875, 0, 0, 0, 0, 0, 877, 0, - 2678, 0, 0, 0, 0, 879, 0, 880, 881, 92, - 814, 547, 815, 816, 817, 818, 819, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, + 469, 470, 471, 472, 0, 0, 0, 0, 0, 0, + 0, 874, 875, 498, 0, 0, 0, 0, 877, 0, + 878, 0, 0, 0, 0, 879, 0, 880, 881, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 2305, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, -278, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, -278, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, -278, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, -278, + 251, 252, 253, 254, 255, 0, 0, 256, -278, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, -278, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, -278, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, -278, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 0, 0, 92, + 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 941, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, - 0, 820, 0, 0, 104, 105, 0, 106, 107, 108, - 109, 110, 111, 112, 2892, 821, 115, 822, 823, 0, - 118, 119, 120, 121, 122, 123, 824, 825, 124, 125, - 826, 827, 128, 0, 129, 130, 131, 132, 828, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 825, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, - 151, 152, 153, 2893, 830, 831, 832, 833, 834, 835, - 836, 156, 157, 158, 159, 160, 161, 162, 837, 838, - 165, 839, 166, 0, 167, 168, 169, 170, 171, 172, + 151, 152, 153, 154, 830, 831, 832, 833, 834, 835, + 836, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, - 675, 181, 182, 0, 183, 184, 185, 0, 186, 187, - 188, 0, 189, 190, 191, 192, 840, 194, 195, 196, - 197, 841, 842, 199, 0, 200, 201, 843, 203, 0, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 841, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 206, 0, 207, 208, 209, 210, 211, - 212, 0, 213, 0, 844, 845, 216, 0, 217, 218, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, - 237, 238, 239, 240, 241, 242, 846, 847, 0, 848, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, + 255, 2056, 0, 256, 257, 258, 259, 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 851, 288, 852, - 290, 291, 292, 293, 853, 294, 295, 296, 297, 854, - 855, 299, 856, 301, 302, 303, 0, 304, 305, 0, - 0, 857, 307, 308, 0, 0, 309, 310, 311, 312, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 0, 294, 295, 296, 297, 0, + 855, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 580, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 860, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 363, 364, 365, 366, 861, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, - 387, 388, 389, 390, 391, 863, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, - 414, 415, 416, 417, 0, 865, 866, 0, 0, 420, - 421, 867, 423, 868, 869, 425, 426, 870, 428, 429, - 2894, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 871, 0, 438, 439, 440, 441, 442, 443, 872, 0, - 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 873, 0, 0, 0, 0, 0, 0, 874, - 875, 0, 0, 0, 0, 0, 877, 0, 878, 0, - 0, 0, 0, 879, 0, 880, 881, 92, 814, 547, - 815, 816, 817, 818, 819, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 820, - 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, - 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, - 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, - 128, 0, 129, 130, 131, 132, 828, 0, 829, 0, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 151, 152, - 153, 2893, 830, 831, 832, 833, 834, 835, 836, 156, - 157, 158, 159, 160, 161, 162, 837, 838, 165, 839, - 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, - 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, - 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, - 842, 199, 0, 200, 201, 843, 203, 0, 204, 0, - 205, 206, 0, 207, 208, 209, 210, 211, 212, 0, - 213, 0, 844, 845, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, - 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 241, 242, 846, 847, 0, 848, 0, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, - 0, 256, 257, 258, 259, 0, 260, 261, 262, 849, - 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 851, 288, 852, 290, 291, - 292, 293, 853, 294, 295, 296, 297, 854, 855, 299, - 856, 301, 302, 303, 0, 304, 305, 0, 0, 857, - 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 363, 364, 365, 366, 861, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, - 389, 390, 391, 863, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, - 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, - 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, - 423, 868, 869, 425, 426, 870, 428, 429, 2894, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, - 438, 439, 440, 441, 442, 443, 872, 0, 445, 446, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 873, 0, 0, 0, 0, 0, 0, 874, 875, 0, - 0, 0, 0, 0, 877, 0, 878, 0, 0, 0, - 0, 879, 0, 880, 881, 92, 814, 547, 815, 816, - 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 820, 0, 0, - 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, - -1725, 821, 115, 822, 823, 0, 118, 119, 120, 121, - 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, - 129, 130, 131, 132, 828, 0, 829, 0, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 0, 151, 152, 153, 2893, - 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, - 159, 160, 161, 162, 837, 838, 165, 839, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, - 0, 200, 201, 843, 203, 0, 204, 0, 205, 206, - 0, 207, 208, 209, 210, -1725, 212, 0, 213, 0, - 844, 845, 216, 0, 217, 218, 219, 220, 221, 222, - 223, -1725, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 241, 242, 846, 847, 0, 848, 0, 246, 0, 0, - 249, 250, 251, 252, 253, 254, 255, 0, 0, 256, - 257, 258, -1725, 0, 260, 261, 262, 849, 850, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 851, 288, 852, 290, 291, 292, 293, - 0, 294, 295, 0, 297, 854, 855, 299, 856, 301, - 302, 303, 0, 304, 305, 0, 0, 857, 307, 308, - 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 860, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 363, 364, 365, 366, 861, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 862, 384, 385, 386, 387, 388, -1725, 390, - 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, - 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, - 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, - 869, 425, 426, 870, 428, 429, 2894, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, - 440, 441, 442, 443, 872, 0, 445, 446, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, -1725, 0, - 0, 0, 0, 0, 0, 874, 875, 0, 0, 0, - 0, 0, 877, 0, 878, 0, 0, 0, 0, 879, - 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, - 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 106, 107, 108, 109, 110, 111, 112, 113, 821, - 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, - 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, - 131, 132, 828, 0, 829, 0, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, - 148, 149, 150, 0, 151, 152, 153, 154, 830, 831, - 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, - 161, 162, 837, 838, 165, 0, 166, 0, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, - 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, - 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, - 201, 843, 203, 0, 204, 0, 205, 206, 0, 207, - 208, 209, 210, 211, 212, 0, 213, 0, 844, 845, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, - 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, - 846, 847, 0, 848, 0, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 0, 0, 256, 257, 258, - 259, 0, 260, 261, 262, 849, 850, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 851, 288, 852, 290, 291, 292, 293, 0, 294, - 295, 296, 297, 854, 855, 299, 856, 301, 302, 303, - 0, 304, 305, 0, 0, 857, 307, 308, 0, 0, - 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, - 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 860, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 862, 384, 385, 386, 387, 388, 389, 390, 391, 863, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, - 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, - 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, - 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, - 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 0, 0, 0, 0, - 0, 0, 0, 1630, 1631, 0, 0, 92, 814, 547, - 815, 816, 1632, 818, 819, 0, 0, 0, 0, 880, - 881, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, - 111, 112, 113, 821, 115, 822, 823, 0, 118, 119, - 120, 121, 122, 123, 824, 825, 124, 125, 826, 827, - 128, 0, 129, 130, 131, 132, 828, 0, 829, 0, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 151, 152, - 153, 154, 830, 831, 832, 833, 834, 835, 836, 156, - 157, 158, 159, 160, 161, 162, 837, 838, 165, 0, - 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 0, 0, 178, 179, 675, 181, - 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, - 189, 190, 191, 192, 840, 194, 195, 196, 197, 841, - 842, 199, 0, 200, 201, 843, 203, 0, 204, 0, - 205, 206, 0, 207, 208, 209, 210, 211, 212, 0, - 213, 0, 844, 845, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, - 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, - 239, 240, 241, 242, 846, 847, 0, 848, 0, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, - 0, 256, 257, 258, 259, 0, 260, 261, 262, 849, - 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 851, 288, 852, 290, 291, - 292, 293, 0, 294, 295, 296, 297, 854, 855, 299, - 856, 301, 302, 303, 0, 304, 305, 0, 0, 306, - 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 860, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 363, 364, 365, 366, 1767, 1768, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, - 389, 390, 391, 863, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, - 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, - 416, 417, 0, 865, 866, 0, 0, 420, 421, 867, - 423, 868, 869, 425, 426, 870, 428, 429, 430, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, - 438, 439, 440, 441, 442, 443, 872, 0, 445, 446, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 0, 0, 0, 0, 0, 0, 0, 1769, 1770, 0, - 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, - 0, 0, 0, 880, 881, 92, 814, 547, 815, 816, - 817, 818, 819, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, - 113, 821, 115, 822, 823, 0, 118, 119, 120, 121, - 122, 123, 824, 825, 124, 125, 826, 827, 128, 0, - 129, 130, 131, 132, 828, 0, 829, 0, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 0, 151, 152, 153, 154, - 830, 831, 832, 833, 834, 835, 836, 156, 157, 158, - 159, 160, 161, 162, 837, 838, 165, 0, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 840, 194, 195, 196, 197, 841, 842, 199, - 0, 200, 201, 843, 203, 0, 204, 0, 205, 206, - 0, 207, 208, 209, 210, 211, 212, 0, 213, 0, - 844, 845, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, - 241, 242, 846, 847, 0, 848, 0, 246, 0, 248, - 249, 250, 251, 252, 253, 254, 255, 0, 0, 256, - 257, 258, 259, 0, 260, 261, 262, 849, 850, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 851, 288, 852, 290, 291, 292, 293, - 0, 294, 295, 296, 297, 854, 855, 299, 856, 301, - 302, 303, 0, 304, 305, 0, 0, 857, 307, 308, - 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 860, 344, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 363, 364, 365, 366, 367, + 2057, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 26, 379, 380, 381, 382, 383, 862, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 864, 408, 0, 409, 410, 31, 411, 412, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 867, 423, 868, 0, 425, 426, 870, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 871, 0, 438, 439, 440, 441, 442, 575, 444, + 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, + 0, 34, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 0, 92, 35, 579, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 0, 118, 119, 120, 121, 122, + 123, 0, 825, 124, 125, 126, 127, 128, 0, 129, + 130, 131, 132, 828, 0, 829, 0, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 154, 830, + 831, 832, 833, 834, 835, 836, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, + 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 841, 0, 199, 0, + 200, 201, 202, 203, 0, 204, 0, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 0, 213, 0, 214, + 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, + 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 0, 245, 0, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 2056, 0, 256, 257, + 258, 259, 0, 260, 261, 262, 849, 850, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 0, + 294, 295, 296, 297, 0, 855, 299, 300, 301, 302, + 303, 0, 304, 305, 0, 580, 306, 307, 308, 0, + 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 363, 364, 365, 366, 367, 2057, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, - 391, 863, 393, 0, 394, 395, 396, 397, 398, 399, + 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, - 0, 865, 866, 0, 0, 420, 421, 867, 423, 868, - 869, 425, 426, 870, 428, 429, 430, 431, 432, 0, + 0, 418, 419, 0, 0, 420, 421, 867, 423, 868, + 0, 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, - 440, 441, 442, 443, 872, 0, 445, 446, 447, 448, + 440, 441, 442, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 0, 0, - 0, 0, 0, 0, 0, 1630, 1631, 0, 0, 0, - 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, - 0, 880, 881, 92, 814, 547, 815, 816, 817, 818, - 819, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 0, 0, 0, 820, 0, 0, 104, 105, - 0, 106, 107, 108, 109, 110, 111, 112, 0, 821, - 115, 822, 823, 0, 118, 119, 120, 121, 122, 123, - 824, 825, 124, 125, 826, 827, 128, 0, 129, 130, - 131, 132, 828, 0, 829, 0, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, - 148, 149, 150, 0, 151, 152, 153, 154, 830, 831, - 832, 833, 834, 835, 836, 156, 157, 158, 159, 160, - 161, 162, 837, 838, 165, 839, 166, 0, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, - 185, 0, 186, 0, 188, 0, 189, 190, 191, 192, - 840, 194, 195, 196, 197, 841, 842, 199, 0, 200, - 201, 843, 203, 0, 204, 0, 205, 206, 0, 207, - 208, 209, 210, 0, 212, 0, 213, 0, 844, 845, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, - 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, - 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, - 846, 847, 0, 848, 0, 246, 0, 0, 249, 250, - 251, 252, 253, 254, 255, 0, 0, 256, 257, 258, - 0, 0, 260, 261, 262, 849, 850, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 851, 288, 852, 290, 291, 292, 293, 0, 294, - 295, 0, 297, 854, 855, 299, 856, 301, 302, 303, - 0, 304, 305, 0, 0, 857, 307, 308, 0, 0, - 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, - 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 860, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, - 365, 366, 861, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 862, 384, 385, 386, 387, 388, 0, 390, 391, 863, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 864, 408, 0, 409, 410, - 0, 411, 412, 413, 414, 415, 416, 417, 0, 865, - 866, 0, 0, 420, 421, 867, 423, 868, 869, 425, - 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 871, 0, 438, 439, 440, 441, - 442, 443, 872, 0, 445, 446, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 0, 0, 0, 0, - 0, 0, 0, 874, 875, 498, 0, 0, 0, 0, - 877, 0, 878, 0, 0, 0, 0, 879, 0, 880, - 881, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 0, 2304, 0, - 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, - 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, - 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, - 129, 130, 131, 132, 133, 0, 0, 0, 135, 136, - 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 0, -694, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, - 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, - 0, -694, 208, 209, 210, 0, 212, 0, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, -694, 237, 238, 239, 240, - 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, - 249, -694, 251, 252, 253, 254, 255, 0, 0, 256, - -694, 258, 0, 0, 260, 261, 262, 0, 0, 263, - 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, -694, 289, 290, 291, 292, 293, - 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, - 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, - 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - -694, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, - 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, - 409, 410, 0, 411, -694, 413, 414, 415, 416, 417, - 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, - 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, - 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 0, 0, - 92, 0, 579, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 941, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 0, 118, 119, 120, 121, 122, 123, 0, 825, 124, - 125, 126, 127, 128, 0, 129, 130, 131, 132, 828, - 0, 829, 0, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 151, 152, 153, 154, 830, 831, 832, 833, 834, - 835, 836, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 841, 0, 199, 0, 200, 201, 202, 203, - 0, 204, 0, 205, 206, 0, 207, 208, 209, 210, - 211, 212, 0, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 0, - 245, 0, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 2055, 0, 256, 257, 258, 259, 0, 260, - 261, 262, 849, 850, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 0, 294, 295, 296, 297, - 0, 855, 299, 300, 301, 302, 303, 0, 304, 305, - 0, 580, 306, 307, 308, 0, 0, 309, 310, 311, - 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 465, 466, 467, 468, 469, 470, 471, 472, 0, 92, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2058, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 825, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 828, 0, + 829, 0, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 151, 152, 153, 154, 830, 831, 832, 833, 834, 835, + 836, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 841, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 206, 0, 207, 208, 209, 210, 211, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 0, 294, 295, 296, 297, 0, + 855, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 311, 312, + 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, 366, 367, - 2056, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 26, 379, 380, 381, 382, 383, 862, 384, 385, + 2057, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 864, 408, 0, 409, 410, 31, 411, 412, + 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, 867, 423, 868, 0, 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, - 437, 871, 0, 438, 439, 440, 441, 442, 575, 444, + 437, 871, 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, - 0, 34, 452, 453, 454, 455, 456, 457, 458, 459, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 0, 92, 35, 579, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2057, + 470, 471, 472, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 109, 110, 111, 112, 113, @@ -5843,443 +5904,254 @@ static const yytype_int16 yytable[] = 224, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 2055, 0, 256, 257, + 250, 251, 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 0, 294, 295, 296, 297, 0, 855, 299, 300, 301, 302, - 303, 0, 304, 305, 0, 580, 306, 307, 308, 0, + 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, - 364, 365, 366, 367, 2056, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 862, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 864, 408, 0, 409, - 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 0, 420, 421, 867, 423, 868, 0, - 425, 426, 870, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 871, 0, 438, 439, 440, - 441, 442, 443, 444, 0, 445, 446, 447, 448, 449, - 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 0, 92, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2057, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 825, 124, 125, 126, - 127, 128, 0, 129, 130, 131, 132, 828, 0, 829, - 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 151, - 152, 153, 154, 830, 831, 832, 833, 834, 835, 836, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 841, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 0, 205, 206, 0, 207, 208, 209, 210, 211, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 0, 0, 256, 257, 258, 259, 0, 260, 261, 262, - 849, 850, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 0, 294, 295, 296, 297, 0, 855, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, - 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 859, 328, 329, 330, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 0, 361, 362, 363, 364, 365, 366, 367, 2056, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 379, 380, 381, 382, 383, 862, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 0, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 864, 408, 0, 409, 410, 0, 411, 412, 413, 414, - 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, - 867, 423, 868, 0, 425, 426, 870, 428, 429, 430, - 431, 432, 0, 0, 433, 434, 435, 436, 437, 871, - 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, - 446, 447, 448, 449, 450, 0, 0, 451, 0, 0, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 0, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 825, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 828, 0, 829, 0, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 151, 152, 153, 154, 830, 831, 832, - 833, 834, 835, 836, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 841, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 206, 0, 207, 208, - 209, 210, 211, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, - 0, 260, 261, 262, 849, 850, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 0, 294, 295, - 296, 297, 0, 855, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, - 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 0, 379, 380, 381, 382, 383, 862, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 864, 408, 0, 409, 410, 0, - 411, 412, 413, 414, 415, 416, 417, 0, 418, 419, - 0, 0, 420, 421, 867, 423, 868, 0, 425, 426, - 870, 428, 429, 430, 431, 432, 0, 0, 433, 434, - 435, 436, 437, 871, 0, 438, 439, 440, 441, 442, - 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, - 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 0, 742, 1231, 547, 0, - 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, - 0, 2693, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, - 112, 743, 744, 0, 745, 746, 0, 118, 119, 120, - 121, 122, 123, 0, 0, 124, 125, 747, 748, 128, - 0, 129, 130, 131, 132, 749, 0, 0, 0, 135, - 136, 137, 138, 139, 140, 0, 142, 143, 144, 0, - 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 160, 161, 162, 750, 751, 165, 0, 166, - 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, - 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, - 190, 191, 192, 752, 194, 195, 196, 197, 753, 1232, - 199, 0, 200, 201, 754, 203, 0, 204, 0, 205, - 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, - 0, 755, 756, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, - 231, 232, 233, 234, 0, 235, 0, 757, 238, 239, - 240, 241, 242, 758, 759, 0, 760, 0, 246, 0, - 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, - 256, 0, 258, 0, 0, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 267, 761, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 762, 0, 763, 290, 291, 292, - 764, 0, 294, 295, 0, 297, 0, 765, 299, 766, - 301, 302, 303, 0, 304, 305, 1233, 0, 306, 307, - 308, 0, 0, 309, 767, 0, 312, 0, 768, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 325, 326, 769, 328, 329, 770, 331, 332, 333, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 771, - 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, - 362, 0, 364, 365, 366, 772, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, - 381, 382, 383, 0, 384, 773, 386, 387, 388, 0, - 390, 391, 774, 393, 0, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 775, 406, 776, 408, - 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, - 417, 0, 777, 778, 0, 0, 420, 421, 779, 423, - 780, 1234, 425, 426, 781, 428, 429, 430, 431, 432, - 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, - 439, 440, 441, 442, 1124, 783, 0, 445, 0, 447, - 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, - 454, 455, 456, 457, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 793, 794, 469, 470, 471, 472, 0, - 742, 0, 0, 0, 0, 0, 1235, 1236, 1935, 0, - 0, 0, 0, 0, 0, 1936, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 3, 4, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 0, 110, 111, 112, 743, 744, 0, 745, 746, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 747, 748, 128, 0, 129, 130, 131, 132, 749, - 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 750, - 751, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 752, 194, 195, - 196, 197, 753, 0, 199, 0, 200, 201, 754, 203, - 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, - 0, 212, 0, 213, 0, 755, 756, 216, 0, 217, - 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 0, 757, 238, 239, 240, 241, 242, 758, 759, 0, - 760, 0, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 761, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 762, 0, - 763, 290, 291, 292, 764, 0, 294, 295, 0, 297, - 0, 765, 299, 766, 301, 302, 303, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 0, 309, 767, 0, - 312, 0, 768, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 769, 328, 329, 770, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, + 382, 383, 862, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 864, 408, 0, + 409, 410, 0, 411, 412, 413, 414, 415, 416, 417, + 0, 418, 419, 0, 0, 420, 421, 867, 423, 868, + 0, 425, 426, 870, 428, 429, 430, 431, 432, 0, + 0, 433, 434, 435, 436, 437, 871, 0, 438, 439, + 440, 441, 442, 443, 444, 0, 445, 446, 447, 448, + 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 0, 742, + 1232, 547, 0, 0, 0, 818, 0, 0, 0, 0, + 0, 0, 0, 0, 2695, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 743, 744, 0, 745, 746, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 747, 748, 128, 0, 129, 130, 131, 132, 749, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 750, 751, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 752, 194, 195, 196, + 197, 753, 1233, 199, 0, 200, 201, 754, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 755, 756, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 757, 238, 239, 240, 241, 242, 758, 759, 0, 760, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 761, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 762, 0, 763, + 290, 291, 292, 764, 0, 294, 295, 0, 297, 0, + 765, 299, 766, 301, 302, 303, 0, 304, 305, 1234, + 0, 306, 307, 308, 0, 0, 309, 767, 0, 312, + 0, 768, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 769, 328, 329, 770, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 771, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 772, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 26, 379, 380, 381, 382, 383, 0, 384, 773, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 773, 386, 387, 388, 0, 390, 391, 774, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 775, 406, 776, 408, 0, 409, 410, 31, 411, 0, + 775, 406, 776, 408, 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, 777, 778, 0, 0, - 420, 421, 779, 423, 780, 0, 425, 426, 781, 428, + 420, 421, 779, 423, 780, 1235, 425, 426, 781, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, - 437, 0, 0, 438, 439, 440, 441, 442, 782, 783, + 437, 0, 0, 438, 439, 440, 441, 442, 1125, 783, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, - 0, 34, 452, 453, 454, 455, 456, 457, 784, 785, + 0, 0, 452, 453, 454, 455, 456, 457, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 469, - 470, 471, 472, 0, 498, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, - 93, 94, 95, 96, 97, 98, 99, 100, 603, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, - 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, - 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, - 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, + 470, 471, 472, 0, 742, 0, 0, 0, 0, 0, + 1236, 1237, 1934, 0, 0, 0, 0, 0, 0, 1935, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 3, 4, 0, 0, 0, 0, 0, 104, + 105, 0, 106, 107, 108, 0, 110, 111, 112, 743, + 744, 0, 745, 746, 0, 118, 119, 120, 121, 122, + 123, 0, 0, 124, 125, 747, 748, 128, 0, 129, + 130, 131, 132, 749, 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, + 160, 161, 162, 750, 751, 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, - 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, - 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 192, 752, 194, 195, 196, 197, 753, 0, 199, 0, + 200, 201, 754, 203, 0, 204, 0, 205, 0, 0, + 0, 208, 209, 210, 0, 212, 0, 213, 0, 755, + 756, 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, - 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, - 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, + 233, 234, 0, 235, 0, 757, 238, 239, 240, 241, + 242, 758, 759, 0, 760, 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, - 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, + 265, 266, 267, 761, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, - 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, + 285, 286, 762, 0, 763, 290, 291, 292, 764, 0, + 294, 295, 0, 297, 0, 765, 299, 766, 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, + 0, 309, 767, 0, 312, 0, 768, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 26, 379, 380, 381, 382, - 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, - 410, 31, 411, 0, 413, 414, 415, 416, 417, 0, - 604, 419, 0, 0, 605, 421, 422, 423, 424, 0, - 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 575, 444, 0, 445, 0, 447, 448, 449, - 450, 0, 0, 451, 0, 34, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 0, 498, 35, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 36, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, - 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 26, - 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, - 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, - 407, 408, 0, 409, 410, 31, 411, 0, 413, 414, - 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, - 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, - 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, - 0, 438, 439, 440, 441, 442, 575, 444, 0, 445, - 0, 447, 448, 449, 450, 0, 0, 451, 0, 34, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 0, 498, 35, 579, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 0, 0, 0, 135, 136, 137, 138, 139, - 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, - 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, - 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, - 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, - 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, - 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, - 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, - 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, - 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, - 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, - 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, - 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 0, 498, 0, 579, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 921, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, - 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, - 121, 122, 123, 0, 0, 124, 125, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 0, 0, 0, 135, - 136, 137, 138, 139, 140, 0, 142, 143, 144, 0, - 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 0, 166, - 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, - 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, - 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, - 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, - 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, - 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, - 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, - 256, 0, 258, 0, 0, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, - 293, 0, 294, 295, 0, 297, 0, 298, 299, 300, - 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, - 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, - 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, - 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, - 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, - 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, - 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, - 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, - 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, - 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, - 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 0, - 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2532, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, - 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, - 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, - 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 500, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, - 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, - 0, 298, 299, 300, 301, 302, 303, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, - 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 769, 328, 329, 770, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 771, 344, + 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, + 0, 364, 365, 366, 772, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 26, 379, 380, 381, + 382, 383, 0, 384, 773, 386, 387, 388, 0, 390, + 391, 774, 393, 0, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 775, 406, 776, 408, 0, + 409, 410, 31, 411, 0, 413, 414, 415, 416, 417, + 0, 777, 778, 0, 0, 420, 421, 779, 423, 780, + 0, 425, 426, 781, 428, 429, 430, 431, 432, 0, + 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, + 440, 441, 442, 782, 783, 0, 445, 0, 447, 448, + 449, 450, 0, 0, 451, 0, 34, 452, 453, 454, + 455, 456, 457, 784, 785, 786, 787, 788, 789, 790, + 791, 792, 793, 794, 469, 470, 471, 472, 0, 498, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 93, 94, 95, 96, 97, + 98, 99, 100, 610, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 26, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 31, 411, 0, + 413, 414, 415, 416, 417, 0, 611, 419, 0, 0, + 612, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 575, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 34, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 0, 498, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, + 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, + 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, + 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, + 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, + 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, + 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, + 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, + 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, + 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, + 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, + 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, + 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, + 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, + 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, + 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 26, 379, 380, 381, + 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, + 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, + 409, 410, 31, 411, 0, 413, 414, 415, 416, 417, + 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, + 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, + 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, + 440, 441, 442, 575, 444, 0, 445, 0, 447, 448, + 449, 450, 0, 0, 451, 0, 34, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 0, 498, + 35, 579, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, @@ -6295,8 +6167,8 @@ static const yytype_int16 yytable[] = 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1652, + 470, 471, 472, 0, 498, 0, 579, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 921, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, @@ -6327,119 +6199,24 @@ static const yytype_int16 yytable[] = 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, - 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, - 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, - 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 0, 498, 0, + 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, + 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, + 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, + 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, + 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, + 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, + 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, + 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, + 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, + 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1757, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, - 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, - 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, - 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, - 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, - 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, - 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, - 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, - 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 0, 0, 0, 0, 2390, 1231, 547, 0, 0, - 1612, 818, 0, 0, 0, 0, 0, 2288, 1613, 1614, - 1615, 93, 94, 95, 96, 97, 98, 99, 100, 1052, - 101, 102, 103, 1053, 1054, 1055, 1056, 1057, 1058, 1059, - 104, 105, 1060, 106, 107, 108, 2391, 110, 111, 112, - 0, 663, 2392, 665, 666, 1061, 118, 119, 120, 121, - 122, 123, 1062, 1063, 124, 125, 667, 668, 128, 1064, - 129, 130, 131, 132, 0, 1065, 2393, 1066, 135, 136, - 137, 138, 139, 140, 2394, 142, 143, 144, 1067, 145, - 146, 147, 148, 149, 150, 1068, 2395, 152, 153, 154, - 1069, 1070, 1071, 2396, 1072, 1073, 1074, 156, 157, 158, - 159, 160, 161, 162, 673, 674, 165, 1075, 166, 1076, - 167, 168, 169, 170, 171, 172, 1077, 173, 174, 175, - 176, 177, 1078, 1079, 178, 179, 675, 181, 182, 1080, - 183, 184, 185, 1081, 186, 187, 188, 1082, 189, 190, - 191, 192, 0, 194, 195, 196, 197, 0, 1083, 199, - 1084, 200, 201, 676, 203, 1085, 204, 1086, 205, 2397, - 1087, 2398, 208, 209, 210, 2399, 212, 1088, 213, 1089, - 0, 0, 216, 1090, 217, 218, 219, 220, 221, 222, - 223, 2400, 225, 226, 227, 228, 1091, 229, 230, 231, - 232, 233, 234, 1092, 235, 2401, 0, 238, 239, 240, - 241, 242, 683, 684, 1093, 685, 1094, 246, 2402, 2403, - 249, 2404, 251, 252, 253, 254, 255, 1095, 1096, 256, - 2405, 258, 2406, 1097, 260, 261, 262, 1098, 1099, 263, - 264, 265, 266, 267, 2407, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 692, 2408, 694, 290, 291, 292, 2409, - 1100, 294, 295, 2410, 297, 1101, 0, 299, 696, 301, - 302, 303, 1102, 304, 305, 1103, 1104, 2411, 307, 308, - 1105, 1106, 309, 0, 2412, 312, 2413, 0, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 1107, 325, - 326, 0, 328, 329, 0, 331, 332, 333, 1108, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 699, 344, - 345, 346, 347, 1109, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 1110, 361, 362, - 2414, 364, 365, 366, 701, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 1111, 379, 380, 381, - 382, 383, 1112, 384, 2415, 386, 387, 388, 2416, 390, - 391, 704, 393, 1113, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 2417, 406, 0, 408, 1114, - 409, 410, 1115, 411, 2418, 413, 414, 415, 416, 417, - 1116, 707, 708, 1117, 1118, 420, 421, 0, 423, 0, - 1119, 425, 426, 2419, 428, 429, 430, 431, 432, 1120, - 1121, 433, 434, 435, 436, 437, 1122, 1123, 438, 439, - 440, 441, 442, 0, 710, 1125, 445, 2420, 447, 448, - 449, 450, 1126, 1127, 451, 1128, 1129, 452, 453, 454, - 455, 456, 457, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 469, 470, 471, 472, 0, 498, - 0, 1616, 1617, 1618, 1612, 2421, 2422, 1621, 1622, 1623, - 1624, 0, 1613, 1614, 1615, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 2533, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, @@ -6469,91 +6246,318 @@ static const yytype_int16 yytable[] = 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 0, 379, 380, 381, 382, 383, 0, 384, 385, 386, - 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 502, - 406, 407, 408, 0, 409, 410, 0, 411, 0, 413, - 414, 415, 416, 417, 0, 418, 419, 0, 0, 420, - 421, 422, 423, 424, 0, 425, 426, 427, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 0, 0, 438, 439, 440, 441, 442, 443, 444, 0, - 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 0, 0, 0, 1616, 1617, 1618, 0, 1619, - 1620, 1621, 1622, 1623, 1624, 1307, 0, 0, 1308, 0, - 0, 0, 0, 1309, 1310, 1311, 0, 0, 0, 0, - 0, 0, 0, 1307, 0, 0, 1308, 0, 0, 0, - 1312, 1309, 1310, 1311, 0, 0, 0, 0, 1314, 0, - 0, 0, 0, 0, 0, 1315, 0, 0, 1312, 0, - 0, 0, 1307, 0, 0, 1308, 1314, 0, 0, 0, - 1309, 1310, 1311, 1315, 0, 0, 0, 0, 0, 0, - 1316, 1307, 0, 0, 1308, 0, 0, 1312, 0, 1309, - 1310, 1311, 0, 0, 0, 1314, 0, 0, 1316, 0, - 0, 0, 1315, 0, 0, 0, 1312, 0, 0, 0, - 0, 0, 0, 0, 1314, 0, 0, 0, 0, 0, - 0, 1315, 0, 0, 0, 0, 0, 1316, 0, 0, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 0, 498, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1653, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, + 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, + 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, + 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, + 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, + 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, + 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, + 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, + 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, + 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, + 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, + 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, + 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, + 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, + 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, + 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, + 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, + 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, + 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, + 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, + 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, + 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, + 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, + 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1316, 0, 0, 0, - 0, 1307, 0, 0, 1308, 0, 0, 0, 0, 1309, - 1310, 1311, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1312, 0, 0, 0, - 1317, 0, 0, 0, 1314, 0, 0, 0, 0, 0, - 0, 1315, 0, 0, 0, 0, 1318, 0, 1317, 0, - 1307, 1319, 0, 1308, 0, 0, 0, 0, 1309, 1310, - 1311, 0, 0, 0, 1318, 0, 1316, 0, 0, 1319, - 0, 0, 0, 1320, 1321, 1312, 0, 1317, 0, 0, - 0, 0, 0, 1314, 0, 0, 0, 1322, 0, 0, - 1315, 1320, 1321, 1318, 0, 0, 1317, 0, 1319, 0, - 0, 0, 0, 0, 0, 1322, 0, 0, 0, 0, - 0, 0, 1318, 0, 0, 1316, 0, 1319, 0, 0, - 1320, 1321, 0, 0, 0, 1323, 0, 0, 1324, 0, - 0, 0, 0, 0, 1322, 0, 0, 0, 0, 1320, - 1321, 0, 1325, 1323, 0, 1326, 1324, 0, 0, 0, - 0, 0, 0, 1322, 0, 0, 0, 0, 0, 0, - 1325, 0, 0, 1326, 0, 0, 1317, 0, 0, 0, - 0, 0, 1323, 0, 0, 1324, 0, 0, 0, 0, - 0, 0, 1318, 0, 0, 0, 0, 1319, 0, 1325, - 0, 1323, 1326, 0, 1324, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1325, 1320, - 1321, 1326, 0, 0, 0, 1317, 0, 0, 0, 0, - 0, 0, 0, 1322, 0, 0, 0, 0, 0, 0, - 0, 1318, 0, 1327, 0, 0, 1319, 0, 0, 0, + 0, 0, 0, 0, 1792, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 0, 0, 0, 0, 2390, 1232, 547, + 0, 0, 1613, 818, 0, 0, 0, 0, 0, 2289, + 1614, 1615, 1616, 93, 94, 95, 96, 97, 98, 99, + 100, 1052, 101, 102, 103, 1053, 1054, 1055, 1056, 1057, + 1058, 1059, 104, 105, 1060, 106, 107, 108, 2391, 110, + 111, 112, 0, 663, 2392, 665, 666, 1061, 118, 119, + 120, 121, 122, 123, 1062, 1063, 124, 125, 667, 668, + 128, 1064, 129, 130, 131, 132, 0, 1065, 2393, 1066, + 135, 136, 137, 138, 139, 140, 2394, 142, 143, 144, + 1067, 145, 146, 147, 148, 149, 150, 1068, 2395, 152, + 153, 154, 1069, 1070, 1071, 2396, 1072, 1073, 1074, 156, + 157, 158, 159, 160, 161, 162, 673, 674, 165, 1075, + 166, 1076, 167, 168, 169, 170, 171, 172, 1077, 173, + 174, 175, 176, 177, 1078, 1079, 178, 179, 675, 181, + 182, 1080, 183, 184, 185, 1081, 186, 187, 188, 1082, + 189, 190, 191, 192, 0, 194, 195, 196, 197, 0, + 1083, 199, 1084, 200, 201, 676, 203, 1085, 204, 1086, + 205, 2397, 1087, 2398, 208, 209, 210, 2399, 212, 1088, + 213, 1089, 0, 0, 216, 1090, 217, 218, 219, 220, + 221, 222, 223, 2400, 225, 226, 227, 228, 1091, 229, + 230, 231, 232, 233, 234, 1092, 235, 2401, 0, 238, + 239, 240, 241, 242, 683, 684, 1093, 685, 1094, 246, + 2402, 2403, 249, 2404, 251, 252, 253, 254, 255, 1095, + 1096, 256, 2405, 258, 2406, 1097, 260, 261, 262, 1098, + 1099, 263, 264, 265, 266, 267, 2407, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 692, 2408, 694, 290, 291, + 292, 2409, 1100, 294, 295, 2410, 297, 1101, 0, 299, + 696, 301, 302, 303, 1102, 304, 305, 1103, 1104, 2411, + 307, 308, 1105, 1106, 309, 0, 2412, 312, 2413, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 1107, 325, 326, 0, 328, 329, 0, 331, 332, 333, + 1108, 334, 335, 336, 337, 338, 339, 1109, 340, 341, + 342, 699, 344, 345, 346, 347, 1110, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 1111, 361, 362, 2414, 364, 365, 366, 701, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 1112, + 379, 380, 381, 382, 383, 1113, 384, 2415, 386, 387, + 388, 2416, 390, 391, 704, 393, 1114, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 2417, 406, + 0, 408, 1115, 409, 410, 1116, 411, 2418, 413, 414, + 415, 416, 417, 1117, 707, 708, 1118, 1119, 420, 421, + 0, 423, 0, 1120, 425, 426, 2419, 428, 429, 430, + 431, 432, 1121, 1122, 433, 434, 435, 436, 437, 1123, + 1124, 438, 439, 440, 441, 442, 0, 710, 1126, 445, + 2420, 447, 448, 449, 450, 1127, 1128, 451, 1129, 1130, + 452, 453, 454, 455, 456, 457, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 469, 470, 471, + 472, 0, 498, 0, 1617, 1618, 1619, 1613, 2421, 2422, + 1622, 1623, 1624, 1625, 0, 1614, 1615, 1616, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, + 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, + 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, + 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, + 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 0, 0, 0, 135, 136, 137, 138, 139, + 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, + 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, + 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, + 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, + 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, + 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, + 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, + 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, + 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, + 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, + 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, + 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, + 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, + 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, + 0, 384, 385, 386, 387, 388, 0, 390, 391, 392, + 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 502, 406, 407, 408, 0, 409, 410, + 0, 411, 0, 413, 414, 415, 416, 417, 0, 418, + 419, 0, 0, 420, 421, 422, 423, 424, 0, 425, + 426, 427, 428, 429, 430, 431, 432, 0, 0, 433, + 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, + 442, 443, 444, 0, 445, 0, 447, 448, 449, 450, + 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 0, 0, 0, 1617, + 1618, 1619, 0, 1620, 1621, 1622, 1623, 1624, 1625, 1308, + 0, 0, 1309, 0, 0, 0, 0, 1310, 1311, 1312, + 0, 0, 0, 0, 0, 0, 0, 1308, 0, 0, + 1309, 0, 0, 0, 1313, 1310, 1311, 1312, 0, 0, + 0, 0, 1315, 0, 0, 0, 0, 0, 0, 1316, + 0, 0, 1313, 0, 0, 0, 1308, 0, 0, 1309, + 1315, 0, 0, 0, 1310, 1311, 1312, 1316, 0, 0, + 0, 0, 0, 0, 1317, 1308, 0, 0, 1309, 0, + 0, 1313, 0, 1310, 1311, 1312, 0, 0, 0, 1315, + 0, 0, 1317, 0, 0, 0, 1316, 0, 0, 0, + 1313, 0, 0, 0, 0, 0, 0, 0, 1315, 0, + 0, 0, 0, 0, 0, 1316, 0, 0, 0, 0, + 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1308, 0, + 0, 1309, 0, 0, 0, 0, 1310, 1311, 1312, 0, + 0, 0, 0, 0, 1318, 0, 1308, 0, 0, 1309, + 0, 0, 0, 1313, 1310, 1311, 1312, 0, 0, 0, + 1319, 1315, 1318, 0, 0, 1320, 0, 972, 1316, 0, + 0, 1313, 0, 973, 0, 0, 0, 0, 1319, 1315, + 985, 0, 0, 1320, 0, 0, 1316, 1321, 1322, 0, + 0, 1318, 0, 1317, 0, 0, 0, 0, 0, 986, + 0, 1323, 0, 0, 0, 1321, 1322, 1319, 0, 0, + 1318, 1317, 1320, 0, 0, 0, 0, 0, 0, 1323, + 0, 0, 0, 0, 0, 0, 1319, 0, 0, 0, + 0, 1320, 0, 0, 1321, 1322, 0, 0, 0, 1324, + 0, 0, 1325, 0, 0, 0, 0, 0, 1323, 0, + 987, 0, 0, 1321, 1322, 0, 1326, 1324, 0, 1327, + 1325, 0, 0, 0, 0, 0, 0, 1323, 0, 0, + 0, 0, 0, 0, 1326, 0, 0, 1327, 0, 974, + 0, 0, 0, 0, 0, 0, 1324, 0, 0, 1325, + 0, 0, 0, 1318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1326, 0, 1324, 1327, 0, 1325, 1319, + 0, 1318, 0, 0, 1320, 0, 0, 0, 0, 0, + 0, 0, 1326, 0, 0, 1327, 0, 1319, 0, 0, + 0, 0, 1320, 0, 0, 0, 1321, 1322, 0, 0, + 988, 0, 0, 0, 0, 0, 0, 0, 1328, 0, + 1323, 0, 0, 0, 1321, 1322, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1328, 0, 1323, 0, + 0, 1308, 0, 0, 1309, 0, 0, 0, 0, 1310, + 1311, 1312, 0, 0, 0, 0, 0, 0, 1324, 0, + 989, 1325, 0, 0, 0, 1328, 1313, 0, 990, 0, + 0, 0, 0, 0, 1315, 1326, 1324, 0, 1327, 1325, + 991, 1316, 0, 0, 1328, 0, 0, 0, 0, 0, + 0, 0, 0, 1326, 0, 0, 1327, 0, 0, 0, + 0, 975, 0, 0, 0, 0, 1317, 0, 0, 0, + 0, 992, 0, 0, 0, 0, 0, 0, 1329, 0, + 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, + 1338, 0, 0, 0, 0, 2267, 1329, 0, 0, 1330, + 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, + 0, 0, 1831, 2355, 0, 0, 977, 0, 994, 0, + 0, 0, 0, 0, 0, 1329, 0, 1328, 1330, 1331, + 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, + 995, 0, 2481, 0, 1329, 1328, 1832, 1330, 1331, 1332, + 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 1308, + 997, 2503, 1309, 0, 0, 0, 1318, 1310, 1311, 1312, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1319, 0, 1313, 0, 0, 1320, 0, 0, + 0, 0, 1315, 0, 0, 0, 0, 0, 0, 1316, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1321, + 1322, 0, 0, 979, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1323, 1317, 0, 0, 1329, 0, 0, + 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, + 0, 0, 0, 0, 2648, 1329, 0, 0, 1330, 1331, + 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, + 0, 1324, 2867, 0, 1325, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1326, 0, + 0, 1327, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1318, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1319, 0, 0, 0, 0, 1320, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1321, 1322, 0, + 1328, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1323, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1324, + 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1326, 0, 0, 1327, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1329, 0, 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, + 1336, 1337, 1338, 0, 0, 0, 0, 2879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1327, 0, 0, 0, 0, 0, 0, 1320, 1321, - 0, 1323, 0, 0, 1324, 0, 0, 0, 0, 0, - 0, 0, 1322, 0, 0, 0, 0, 0, 1325, 0, - 1327, 1326, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1323, 0, 0, 1324, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1325, 0, 0, - 1326, 0, 0, 1328, 0, 0, 1329, 1330, 1331, 0, - 1332, 1333, 1334, 1335, 1336, 1337, 0, 0, 0, 0, - 2480, 1328, 0, 0, 1329, 1330, 1331, 0, 1332, 1333, - 1334, 1335, 1336, 1337, 0, 0, 0, 0, 2502, 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1328, 0, 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, - 1335, 1336, 1337, 0, 0, 0, 0, 2647, 0, 1328, - 0, 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, - 1336, 1337, 0, 0, 0, 0, 2863, 0, 1327, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1328, - 0, 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, - 1336, 1337, 0, 0, 0, 0, 2875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1328, 1051, - 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, 1336, - 1337, 0, 0, 1488, 0, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1329, 1051, + 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, + 1338, 0, 0, 1489, 0, 93, 94, 95, 96, 97, 98, 99, 100, 1052, 101, 102, 103, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 104, 105, 1060, 106, 107, 108, 0, 110, 111, 112, 743, 744, 0, 745, 746, 1061, @@ -6583,149 +6587,102 @@ static const yytype_int16 yytable[] = 1104, 306, 307, 308, 1105, 1106, 309, 767, 0, 312, 0, 768, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 1107, 325, 326, 769, 328, 329, 770, 331, - 332, 333, 1108, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 771, 344, 345, 346, 347, 1109, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 1110, 361, 362, 0, 364, 365, 366, 772, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 1111, 379, 380, 381, 382, 383, 1112, 384, 773, 386, - 387, 388, 0, 390, 391, 774, 393, 1113, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 775, - 406, 776, 408, 1114, 409, 410, 1115, 411, 0, 413, - 414, 415, 416, 417, 1116, 777, 778, 1117, 1118, 420, - 421, 779, 423, 780, 1119, 425, 426, 781, 428, 429, - 430, 431, 432, 1120, 1121, 433, 434, 435, 436, 437, - 1122, 1123, 438, 439, 440, 441, 442, 1124, 783, 1125, - 445, 0, 447, 448, 449, 450, 1126, 1127, 451, 1128, - 1129, 452, 453, 454, 455, 456, 457, 784, 785, 786, - 787, 788, 789, 790, 791, 792, 793, 794, 469, 470, - 471, 472, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 1736, 0, 0, 0, 0, 0, 0, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 0, 0, 0, 135, 136, 137, 138, 139, - 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, - 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, - 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, - 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, - 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, - 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, - 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, - 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, - 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, - 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, - 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, - 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 742, 1231, 547, 0, 0, - 0, 818, 0, 0, 2219, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, - 743, 744, 0, 745, 746, 0, 118, 119, 120, 121, - 122, 123, 0, 0, 124, 125, 747, 748, 128, 0, - 129, 130, 131, 132, 749, 0, 0, 0, 135, 136, - 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 160, 161, 162, 750, 751, 165, 1366, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 752, 194, 195, 196, 197, 753, 1232, 199, - 0, 200, 201, 754, 203, 0, 204, 0, 205, 0, - 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, - 755, 756, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, 0, 757, 238, 239, 240, - 241, 242, 758, 759, 0, 760, 0, 246, 0, 0, - 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, - 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, - 264, 265, 266, 267, 761, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 762, 0, 763, 290, 291, 292, 764, - 0, 294, 295, 0, 297, 0, 765, 299, 766, 301, - 302, 303, 0, 304, 305, 1233, 0, 306, 307, 308, - 0, 0, 309, 767, 0, 312, 0, 768, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 769, 328, 329, 770, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 771, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 0, 364, 365, 366, 772, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 0, 384, 773, 386, 387, 388, 0, 390, - 391, 774, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 775, 406, 776, 408, 0, - 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, - 0, 777, 778, 0, 0, 420, 421, 779, 423, 780, - 1234, 425, 426, 781, 428, 429, 430, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, - 440, 441, 442, 1124, 783, 0, 445, 0, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 469, 470, 471, 472, 742, 1231, - 547, 0, 0, 0, 818, 1235, 1236, 0, 0, 0, - 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 743, 744, 0, 745, 746, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 747, - 748, 128, 0, 129, 130, 131, 132, 749, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 750, 751, 165, - 1368, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 752, 194, 195, 196, 197, - 753, 1232, 199, 0, 200, 201, 754, 203, 0, 204, - 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 755, 756, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 757, - 238, 239, 240, 241, 242, 758, 759, 0, 760, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 761, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 762, 0, 763, 290, - 291, 292, 764, 0, 294, 295, 0, 297, 0, 765, - 299, 766, 301, 302, 303, 0, 304, 305, 1233, 0, - 306, 307, 308, 0, 0, 309, 767, 0, 312, 0, - 768, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 769, 328, 329, 770, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, + 332, 333, 1108, 334, 335, 336, 337, 338, 339, 1109, + 340, 341, 342, 771, 344, 345, 346, 347, 1110, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 1111, 361, 362, 0, 364, 365, 366, 772, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 1112, 379, 380, 381, 382, 383, 1113, 384, 773, + 386, 387, 388, 0, 390, 391, 774, 393, 1114, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 775, 406, 776, 408, 1115, 409, 410, 1116, 411, 0, + 413, 414, 415, 416, 417, 1117, 777, 778, 1118, 1119, + 420, 421, 779, 423, 780, 1120, 425, 426, 781, 428, + 429, 430, 431, 432, 1121, 1122, 433, 434, 435, 436, + 437, 1123, 1124, 438, 439, 440, 441, 442, 1125, 783, + 1126, 445, 0, 447, 448, 449, 450, 1127, 1128, 451, + 1129, 1130, 452, 453, 454, 455, 456, 457, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 469, + 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, + 0, 0, 1737, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, + 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 742, 1232, 547, + 0, 0, 0, 818, 0, 0, 2220, 0, 0, 0, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 743, 744, 0, 745, 746, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 747, 748, + 128, 0, 129, 130, 131, 132, 749, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 750, 751, 165, 1367, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 752, 194, 195, 196, 197, 753, + 1233, 199, 0, 200, 201, 754, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 755, 756, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 757, 238, + 239, 240, 241, 242, 758, 759, 0, 760, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 761, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 762, 0, 763, 290, 291, + 292, 764, 0, 294, 295, 0, 297, 0, 765, 299, + 766, 301, 302, 303, 0, 304, 305, 1234, 0, 306, + 307, 308, 0, 0, 309, 767, 0, 312, 0, 768, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 769, 328, 329, 770, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 771, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 772, 368, 369, @@ -6735,13 +6692,13 @@ static const yytype_int16 yytable[] = 397, 398, 399, 400, 401, 402, 403, 404, 775, 406, 776, 408, 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, 777, 778, 0, 0, 420, 421, - 779, 423, 780, 1234, 425, 426, 781, 428, 429, 430, + 779, 423, 780, 1235, 425, 426, 781, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, - 0, 438, 439, 440, 441, 442, 1124, 783, 0, 445, + 0, 438, 439, 440, 441, 442, 1125, 783, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 469, 470, 471, - 472, 742, 1231, 547, 0, 0, 0, 818, 1235, 1236, + 472, 742, 1232, 547, 0, 0, 0, 818, 1236, 1237, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, @@ -6752,11 +6709,11 @@ static const yytype_int16 yytable[] = 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, - 750, 751, 165, 0, 166, 0, 167, 168, 169, 170, + 750, 751, 165, 1369, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 752, 194, - 195, 196, 197, 753, 1232, 199, 0, 200, 201, 754, + 195, 196, 197, 753, 1233, 199, 0, 200, 201, 754, 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, 755, 756, 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, @@ -6769,317 +6726,369 @@ static const yytype_int16 yytable[] = 278, 279, 280, 281, 282, 283, 284, 285, 286, 762, 0, 763, 290, 291, 292, 764, 0, 294, 295, 0, 297, 0, 765, 299, 766, 301, 302, 303, 0, 304, - 305, 1233, 0, 306, 307, 308, 0, 0, 309, 767, + 305, 1234, 0, 306, 307, 308, 0, 0, 309, 767, 0, 312, 0, 768, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 769, 328, 329, 770, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 771, 344, 345, 346, 347, 0, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, - 772, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 0, 379, 380, 381, 382, 383, 0, 384, - 773, 386, 387, 388, 0, 390, 391, 774, 393, 0, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 775, 406, 776, 408, 0, 409, 410, 0, 411, - 0, 413, 414, 415, 416, 417, 0, 777, 778, 0, - 0, 420, 421, 779, 423, 780, 1234, 425, 426, 781, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, - 436, 437, 0, 0, 438, 439, 440, 441, 442, 1124, - 783, 0, 445, 0, 447, 448, 449, 450, 0, 0, - 451, 0, 0, 452, 453, 454, 455, 456, 457, 784, - 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, - 469, 470, 471, 472, 0, 1307, 0, 0, 1308, 0, - 0, 1235, 1236, 1309, 1310, 1311, 0, 0, 0, 0, - 0, 0, 0, 1307, 0, 0, 1308, 0, 0, 0, - 1312, 1309, 1310, 1311, 1763, 0, 0, 0, 1314, 0, - 0, 0, 0, 0, 0, 1315, 0, 0, 1312, 0, - 0, 0, 1307, 0, 0, 1308, 1314, 0, 0, 0, - 1309, 1310, 1311, 1315, 0, 0, 0, 0, 0, 0, - 1316, 1307, 0, 0, 1308, 0, 0, 1312, 0, 1309, - 1310, 1311, 0, 0, 0, 1314, 0, 0, 1316, 0, - 0, 0, 1315, 0, 0, 0, 1312, 0, 0, 1957, - 0, 0, 0, 0, 1314, 0, 0, 0, 0, 0, - 0, 1315, 0, 0, 0, 0, 0, 1316, 0, 0, - 0, 1764, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1316, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1307, 0, 0, 1308, 0, 0, - 0, 0, 1309, 1310, 1311, 0, 0, 0, 0, 0, - 1317, 0, 0, 0, 0, 0, 0, 0, 1995, 1312, - 0, 0, 0, 1996, 0, 0, 1318, 1314, 1317, 0, - 0, 1319, 0, 0, 1315, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1318, 0, 2936, 0, 0, 1319, - 0, 0, 0, 1320, 1321, 0, 0, 1317, 0, 1316, - 0, 0, 0, 0, 0, 0, 0, 1322, 0, 0, - 0, 1320, 1321, 1318, 0, 0, 1317, 0, 1319, 0, - 0, 0, 0, 0, 0, 1322, 0, 0, 0, 0, - 0, 0, 1318, 0, 0, 0, 0, 1319, 0, 0, - 1320, 1321, 0, 0, 0, 1323, 0, 0, 1324, 0, - 0, 0, 0, 0, 1322, 0, 0, 0, 0, 1320, - 1321, 0, 1325, 1323, 0, 1326, 1324, 0, 0, 0, - 0, 0, 0, 1322, 0, 0, 0, 0, 0, 0, - 1325, 0, 0, 1326, 0, 0, 0, 0, 0, 0, - 0, 0, 1323, 0, 0, 1324, 0, 0, 0, 1317, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1325, - 0, 1323, 1326, 0, 1324, 1318, 0, 0, 0, 0, - 1319, 0, 0, 0, 0, 0, 0, 0, 1325, 0, - 0, 1326, 0, 0, 0, 2937, 0, 0, 0, 0, - 0, 0, 1320, 1321, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1327, 0, 1307, 1322, 0, 1308, 0, - 0, 0, 0, 1309, 1310, 1311, 0, 0, 0, 0, - 0, 1327, 0, 0, 0, 0, 0, 0, 0, 0, - 1312, 0, 0, 2000, 0, 0, 0, 0, 1314, 0, - 0, 0, 0, 0, 1323, 1315, 0, 1324, 0, 0, - 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1325, 1765, 0, 1326, 0, 0, 0, 0, 1327, - 1316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1969, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1328, 0, 0, 1329, 1330, 1331, 0, - 1332, 1333, 1334, 1335, 1336, 1337, 0, 0, 0, 0, - 0, 1328, 0, 0, 1329, 1330, 1331, 0, 1332, 1333, - 1334, 1335, 1336, 1337, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1328, 0, 1327, 1329, 1330, 1331, 0, 1332, 1333, 1334, - 1335, 1336, 1337, 0, 0, 0, 0, 0, 0, 1328, - 1317, 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, - 1336, 1337, 0, 0, 1307, 0, 1318, 1308, 0, 0, - 0, 1319, 1309, 1310, 1311, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1312, - 0, 0, 0, 1320, 1321, 0, 0, 1314, 0, 0, - 0, 0, 0, 0, 1315, 0, 0, 1322, 0, 0, - 0, 0, 0, 1307, 0, 0, 1308, 0, 0, 0, - 0, 1309, 1310, 1311, 0, 0, 0, 0, 0, 1316, - 0, 0, 1328, 0, 0, 1329, 1330, 1331, 1312, 1332, - 1333, 1334, 1335, 1336, 1337, 1323, 1314, 0, 1324, 0, + 339, 0, 340, 341, 342, 771, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 772, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, + 384, 773, 386, 387, 388, 0, 390, 391, 774, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 775, 406, 776, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 777, 778, + 0, 0, 420, 421, 779, 423, 780, 1235, 425, 426, + 781, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, + 1125, 783, 0, 445, 0, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 469, 470, 471, 472, 742, 1232, 547, 0, 0, + 0, 818, 1236, 1237, 0, 0, 0, 0, 0, 0, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, + 743, 744, 0, 745, 746, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 747, 748, 128, 0, + 129, 130, 131, 132, 749, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 750, 751, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 752, 194, 195, 196, 197, 753, 1233, 199, + 0, 200, 201, 754, 203, 0, 204, 0, 205, 0, + 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 755, 756, 216, 0, 217, 218, 219, 220, 221, 222, + 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 0, 757, 238, 239, 240, + 241, 242, 758, 759, 0, 760, 0, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, + 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 761, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 762, 0, 763, 290, 291, 292, 764, + 0, 294, 295, 0, 297, 0, 765, 299, 766, 301, + 302, 303, 0, 304, 305, 1234, 0, 306, 307, 308, + 0, 0, 309, 767, 0, 312, 0, 768, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 769, 328, 329, 770, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 771, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 772, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 773, 386, 387, 388, 0, + 390, 391, 774, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 775, 406, 776, 408, + 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, + 417, 0, 777, 778, 0, 0, 420, 421, 779, 423, + 780, 1235, 425, 426, 781, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 1125, 783, 0, 445, 0, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 469, 470, 471, 472, 0, + 1308, 0, 0, 1309, 0, 0, 1236, 1237, 1310, 1311, + 1312, 0, 0, 0, 0, 0, 0, 0, 1308, 0, + 0, 1309, 0, 0, 0, 1313, 1310, 1311, 1312, 1750, 0, 0, 0, 1315, 0, 0, 0, 0, 0, 0, - 0, 1307, 1325, 0, 1308, 1326, 0, 0, 0, 1309, - 1310, 1311, 0, 0, 0, 0, 0, 0, 1316, 0, - 0, 0, 0, 0, 0, 0, 1312, 0, 0, 2007, - 0, 0, 0, 0, 1314, 0, 0, 0, 0, 0, - 0, 1315, 0, 1307, 0, 0, 1308, 0, 0, 0, - 0, 1309, 1310, 1311, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2005, 0, 1316, 0, 1312, 1317, - 0, 2265, 0, 0, 0, 0, 1314, 0, 0, 0, - 0, 0, 0, 1315, 0, 1318, 0, 0, 0, 1307, - 1319, 0, 1308, 1327, 0, 0, 0, 1309, 1310, 1311, - 0, 0, 0, 0, 0, 0, 0, 0, 1316, 0, - 0, 0, 1320, 1321, 1312, 0, 0, 0, 1317, 0, - 0, 0, 1314, 0, 0, 0, 1322, 0, 0, 1315, - 0, 0, 0, 0, 1318, 0, 0, 0, 0, 1319, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1316, 0, 0, 0, 0, 0, - 0, 1320, 1321, 0, 1323, 0, 1317, 1324, 0, 0, - 0, 0, 0, 0, 0, 1322, 0, 0, 0, 0, - 0, 1325, 1318, 0, 1326, 0, 0, 1319, 0, 0, - 0, 0, 0, 1328, 0, 0, 1329, 1330, 1331, 0, - 1332, 1333, 1334, 1335, 1336, 1337, 0, 0, 1317, 1320, - 1321, 0, 0, 1323, 0, 0, 1324, 0, 0, 0, - 0, 0, 0, 1322, 1318, 0, 0, 0, 0, 1319, - 1325, 0, 0, 1326, 0, 0, 0, 0, 0, 0, + 1316, 0, 0, 1313, 0, 0, 0, 1308, 0, 0, + 1309, 1315, 0, 0, 0, 1310, 1311, 1312, 1316, 0, + 0, 0, 0, 0, 0, 1317, 1308, 0, 0, 1309, + 0, 0, 1313, 0, 1310, 1311, 1312, 0, 0, 0, + 1315, 0, 0, 1317, 0, 0, 0, 1316, 0, 0, + 0, 1313, 0, 0, 1958, 0, 0, 0, 0, 1315, + 0, 0, 0, 0, 0, 0, 1316, 0, 0, 0, + 0, 0, 1317, 0, 0, 0, 1751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1320, 1321, 0, 1317, 0, 0, 0, 0, 0, - 0, 1323, 0, 0, 1324, 1322, 0, 0, 0, 0, - 1318, 0, 1327, 0, 1307, 1319, 0, 1308, 1325, 0, - 0, 1326, 1309, 1310, 1311, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 1312, - 0, 0, 0, 1323, 0, 0, 1324, 1314, 0, 0, - 0, 1322, 0, 0, 1315, 0, 0, 0, 0, 0, - 1325, 1327, 1307, 1326, 0, 1308, 0, 0, 0, 0, - 1309, 1310, 1311, 0, 0, 0, 0, 0, 0, 1316, - 0, 0, 0, 0, 0, 0, 0, 1312, 0, 1323, - 0, 0, 1324, 2223, 0, 1314, 0, 0, 0, 0, - 0, 0, 1315, 0, 0, 0, 1325, 0, 0, 1327, - 0, 0, 1328, 0, 0, 1329, 1330, 1331, 0, 1332, - 1333, 1334, 1335, 1336, 1337, 0, 0, 1316, 0, 0, + 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1308, + 0, 0, 1309, 0, 0, 0, 0, 1310, 1311, 1312, + 0, 0, 0, 0, 0, 1318, 0, 0, 0, 0, + 0, 0, 0, 1996, 1313, 0, 0, 0, 1997, 0, + 0, 1319, 1315, 1318, 0, 0, 1320, 0, 0, 1316, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1319, + 0, 2940, 0, 0, 1320, 0, 0, 0, 1321, 1322, + 0, 0, 1318, 0, 1317, 0, 0, 0, 0, 0, + 0, 0, 1323, 0, 0, 0, 1321, 1322, 1319, 0, + 0, 1318, 0, 1320, 0, 0, 0, 0, 0, 0, + 1323, 0, 0, 0, 0, 0, 0, 1319, 0, 0, + 0, 0, 1320, 0, 0, 1321, 1322, 0, 0, 0, + 1324, 0, 0, 1325, 0, 0, 0, 0, 0, 1323, + 0, 0, 0, 0, 1321, 1322, 0, 1326, 1324, 0, + 1327, 1325, 0, 0, 0, 0, 0, 0, 1323, 0, + 0, 0, 0, 0, 0, 1326, 0, 0, 1327, 0, + 0, 0, 0, 0, 0, 0, 0, 1324, 0, 0, + 1325, 0, 0, 0, 1318, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1326, 0, 1324, 1327, 1308, 1325, + 1319, 1309, 0, 0, 0, 1320, 1310, 1311, 1312, 0, + 0, 0, 0, 1326, 0, 0, 1327, 0, 0, 0, + 2941, 0, 0, 1313, 0, 0, 2001, 1321, 1322, 0, + 0, 1315, 0, 0, 0, 0, 0, 0, 1316, 1328, + 0, 1323, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1328, 0, 0, + 0, 0, 1308, 1317, 0, 1309, 0, 0, 0, 0, + 1310, 1311, 1312, 0, 0, 0, 0, 0, 0, 1324, + 0, 0, 1325, 0, 0, 0, 1328, 1313, 0, 0, + 0, 0, 0, 0, 0, 1315, 1326, 0, 1752, 1327, + 0, 0, 1316, 0, 0, 1328, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1970, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1317, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1329, + 0, 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, + 1337, 1338, 0, 0, 0, 0, 0, 1329, 0, 0, + 1330, 1331, 1332, 1318, 1333, 1334, 1335, 1336, 1337, 1338, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1319, + 0, 0, 0, 0, 1320, 0, 1329, 0, 1328, 1330, + 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, + 0, 0, 0, 0, 0, 1329, 1321, 1322, 1330, 1331, + 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, + 1323, 0, 2006, 0, 0, 0, 0, 1318, 0, 1308, + 0, 0, 1309, 0, 0, 0, 0, 1310, 1311, 1312, + 0, 0, 0, 1319, 0, 0, 0, 0, 1320, 0, + 0, 0, 0, 0, 1313, 0, 0, 2008, 1324, 0, + 0, 1325, 1315, 0, 0, 0, 0, 0, 0, 1316, + 1321, 1322, 0, 0, 0, 1326, 0, 0, 1327, 0, + 0, 0, 0, 0, 1323, 0, 0, 0, 1329, 0, + 0, 1330, 1331, 1332, 1317, 1333, 1334, 1335, 1336, 1337, + 1338, 0, 0, 0, 1308, 0, 0, 1309, 0, 0, + 0, 0, 1310, 1311, 1312, 0, 0, 0, 0, 0, + 0, 0, 1324, 0, 0, 1325, 0, 0, 0, 1313, + 0, 0, 2266, 0, 0, 0, 0, 1315, 0, 1326, + 0, 0, 1327, 1308, 1316, 0, 1309, 0, 0, 0, + 0, 1310, 1311, 1312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1328, 1313, 1317, + 0, 0, 0, 0, 0, 0, 1315, 0, 0, 0, + 0, 0, 0, 1316, 0, 0, 0, 0, 1308, 0, + 0, 1309, 0, 0, 1318, 0, 1310, 1311, 1312, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1317, 0, + 1319, 0, 0, 1313, 0, 1320, 0, 0, 0, 0, + 0, 1315, 0, 0, 0, 0, 0, 0, 1316, 0, + 0, 1328, 0, 0, 0, 0, 0, 1321, 1322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1307, 0, 0, 1308, 0, - 0, 1327, 0, 1309, 1310, 1311, 0, 0, 0, 0, - 0, 1328, 0, 0, 1329, 1330, 1331, 0, 1332, 1333, - 1334, 1335, 1336, 1337, 0, 0, 0, 0, 1314, 1317, - 0, 0, 0, 0, 0, 1315, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1318, 0, 1327, 0, 0, - 1319, 0, 0, 0, 0, 0, 0, 0, 0, 1328, - 1316, 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, - 1336, 1337, 1320, 1321, 0, 0, 0, 1317, 0, 0, - 0, 0, 0, 0, 0, 0, 1322, 0, 0, 0, - 0, 0, 0, 1318, 0, 0, 0, 0, 1319, 0, - 0, 1328, 0, 0, 1329, 1330, 1331, 0, 1332, 1333, - 1334, 1335, 1336, 1337, 0, 0, 0, 0, 0, 0, - 1320, 1321, 0, 0, 1323, 0, 0, 1324, 0, 0, - 0, 0, 0, 0, 1322, 0, 0, 0, 0, 0, - 0, 1325, 0, 0, 1326, 0, 0, 1328, 0, 0, - 1329, 1330, 1331, 0, 1332, 1333, 1334, 1335, 1336, 1337, - 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1323, 0, 0, 1324, 1318, 0, 0, 0, - 0, 1319, 0, 0, 0, 0, 0, 0, 0, 1325, - 0, 0, 1326, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1320, 1321, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1322, 0, 0, + 0, 1323, 0, 1317, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1329, 0, 1318, + 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, + 0, 0, 0, 0, 0, 1319, 0, 0, 0, 1324, + 1320, 0, 1325, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1326, 0, 1318, 1327, + 0, 0, 1321, 1322, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1319, 0, 1323, 0, 0, 1320, + 0, 1329, 0, 0, 1330, 1331, 1332, 0, 1333, 1334, + 1335, 1336, 1337, 1338, 0, 0, 0, 0, 0, 0, + 0, 1321, 1322, 1318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1324, 1323, 0, 1325, 0, 1319, + 0, 0, 0, 0, 1320, 0, 0, 0, 0, 0, + 0, 1326, 1308, 0, 1327, 1309, 0, 0, 0, 0, + 1310, 1311, 1312, 0, 0, 0, 1321, 1322, 1328, 0, + 0, 0, 0, 1324, 0, 0, 1325, 1313, 0, 0, + 1323, 0, 0, 0, 0, 1315, 0, 0, 0, 0, + 1326, 1308, 1316, 1327, 1309, 0, 0, 0, 0, 1310, + 1311, 1312, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1313, 1317, 1324, 0, + 0, 1325, 0, 0, 1315, 0, 0, 0, 0, 0, + 0, 1316, 0, 0, 0, 1326, 0, 0, 1327, 0, + 0, 0, 0, 1328, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1317, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1329, 0, + 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, + 1338, 0, 1328, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1308, 0, 0, 1309, 0, 0, 0, 0, + 1310, 1311, 1312, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2224, 0, 0, 1318, 0, 0, + 0, 0, 0, 0, 0, 1315, 0, 1328, 0, 0, + 0, 1308, 1316, 1319, 1309, 0, 0, 0, 1320, 1310, + 1311, 1312, 0, 1329, 0, 0, 1330, 1331, 1332, 0, + 1333, 1334, 1335, 1336, 1337, 1338, 1318, 1317, 0, 0, + 1321, 1322, 0, 0, 1315, 0, 0, 0, 0, 0, + 0, 1316, 1319, 0, 1323, 0, 0, 1320, 0, 0, + 0, 0, 1329, 0, 0, 1330, 1331, 1332, 0, 1333, + 1334, 1335, 1336, 1337, 1338, 0, 1317, 0, 0, 1321, + 1322, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1324, 1323, 0, 1325, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1329, 0, 1326, + 1330, 1331, 1332, 0, 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1327, 0, 0, 0, 0, 0, 0, 0, + 0, 1324, 0, 0, 1325, 0, 0, 1318, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1326, 0, + 0, 1327, 0, 1319, 0, 0, 0, 0, 1320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1323, 0, 0, 1324, 0, + 0, 0, 0, 0, 0, 0, 1318, 0, 0, 0, + 1321, 1322, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1319, 0, 1323, 0, 0, 1320, 0, 0, + 0, 1328, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1727, + -1727, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1324, 1323, 0, 1325, 0, 0, 0, 0, + 1328, 0, 0, 0, 0, 0, 0, 0, 0, 1326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, - 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1727, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1329, 0, 0, 1330, 1331, 1332, 0, 1333, 1334, + 1335, 1336, 1337, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1328, 0, 0, 1329, 1330, 1331, 0, 1332, - 1333, 1334, 1335, 1336, 1337, 0, 0, 0, 0, 0, + 1329, 1328, 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, + 1336, 1767, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1328, 0, 0, 1329, 1330, 1331, 0, 1332, 1333, 1334, - 1335, 1780, 1337, 0, 0, 0, 0, 0, 0, 0, + 1328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1329, 0, 0, 1330, 1331, 1332, 0, 1333, 1334, + 1335, 1336, 1337, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1051, 0, 1671, 1328, 0, 0, 1329, 1330, 1331, 0, - 1332, 1333, 1334, 1335, 1336, 1337, 93, 94, 95, 96, - 97, 98, 99, 100, 1052, 101, 102, 103, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 104, 105, 1060, 106, 107, - 108, 0, 110, 111, 112, 743, 744, 0, 745, 746, - 1061, 118, 119, 120, 121, 122, 123, 1062, 1063, 124, - 125, 747, 748, 128, 1064, 129, 130, 131, 132, 749, - 1065, 0, 1066, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 1067, 145, 146, 147, 148, 149, 150, - 1068, 0, 152, 153, 154, 1069, 1070, 1071, 0, 1072, - 1073, 1074, 156, 157, 158, 159, 160, 161, 162, 750, - 751, 165, 1075, 166, 1076, 167, 168, 169, 170, 171, - 172, 1077, 173, 174, 175, 176, 177, 1078, 1079, 178, - 179, 180, 181, 182, 1080, 183, 184, 185, 1081, 186, - 187, 188, 1082, 189, 190, 191, 192, 752, 194, 195, - 196, 197, 753, 1083, 199, 1084, 200, 201, 754, 203, - 1085, 204, 1086, 205, 0, 1087, 0, 208, 209, 210, - 0, 212, 1088, 213, 1089, 755, 756, 216, 1090, 217, - 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, - 228, 1091, 229, 230, 231, 232, 233, 234, 1092, 235, - 0, 757, 238, 239, 240, 241, 242, 758, 759, 1093, - 760, 1094, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 1095, 1096, 256, 0, 258, 0, 1097, 260, - 261, 262, 1098, 1099, 263, 264, 265, 266, 267, 761, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 762, 0, - 763, 290, 291, 292, 764, 1100, 294, 295, 0, 297, - 1101, 765, 299, 766, 301, 302, 303, 1102, 304, 305, - 1103, 1104, 306, 307, 308, 1105, 1106, 309, 767, 0, - 312, 0, 768, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 1107, 325, 326, 769, 328, 329, 770, - 331, 332, 333, 1108, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 771, 344, 345, 346, 347, 1109, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 1110, 361, 362, 0, 364, 365, 366, 772, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 1111, 379, 380, 381, 382, 383, 1112, 384, 773, - 386, 387, 388, 0, 390, 391, 774, 393, 1113, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 775, 406, 776, 408, 1114, 409, 410, 1115, 411, 0, - 413, 414, 415, 416, 417, 1116, 777, 778, 1117, 1118, - 420, 421, 779, 423, 780, 1119, 425, 426, 781, 428, - 429, 430, 431, 432, 1120, 1121, 433, 434, 435, 436, - 437, 1122, 1123, 438, 439, 440, 441, 442, 1124, 783, - 1125, 445, 0, 447, 448, 449, 450, 1126, 1127, 451, - 1128, 1129, 452, 453, 454, 455, 456, 457, 784, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 794, 469, - 470, 471, 472, 1051, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 1052, 101, 102, - 103, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 104, 105, - 1060, 106, 107, 108, 0, 110, 111, 112, 743, 744, - 0, 745, 746, 1061, 118, 119, 120, 121, 122, 123, - 1062, 1063, 124, 125, 747, 748, 128, 1064, 129, 130, - 131, 132, 749, 1065, 0, 1066, 135, 136, 137, 138, - 139, 140, 0, 142, 143, 144, 1067, 145, 146, 147, - 148, 149, 150, 1068, 0, 152, 153, 154, 1069, 1070, - 1071, 0, 1072, 1073, 1074, 156, 157, 158, 159, 160, - 161, 162, 750, 751, 165, 1075, 166, 1076, 167, 168, - 169, 170, 171, 172, 1077, 173, 174, 175, 176, 177, - 1078, 1079, 178, 179, 180, 181, 182, 1080, 183, 184, - 185, 1081, 186, 187, 188, 1082, 189, 190, 191, 192, - 752, 194, 195, 196, 197, 753, 1083, 199, 1084, 200, - 201, 754, 203, 1085, 204, 1086, 205, 0, 1087, 0, - 208, 209, 210, 0, 212, 1088, 213, 1089, 755, 756, - 216, 1090, 217, 218, 219, 220, 221, 222, 223, 0, - 225, 226, 227, 228, 1091, 229, 230, 231, 232, 233, - 234, 1092, 235, 0, 757, 238, 239, 240, 241, 242, - 758, 759, 1093, 760, 1094, 246, 0, 0, 249, 0, - 251, 252, 253, 254, 255, 1095, 1096, 256, 0, 258, - 0, 1097, 260, 261, 262, 1098, 1099, 263, 264, 265, - 266, 267, 761, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 762, 0, 763, 290, 291, 292, 764, 1100, 294, - 295, 0, 297, 1101, 765, 299, 766, 301, 302, 303, - 1102, 304, 305, 1103, 1104, 306, 307, 308, 1105, 1106, - 309, 767, 0, 312, 0, 768, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 1107, 325, 326, 769, - 328, 329, 770, 331, 332, 333, 1108, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 771, 344, 345, 346, - 347, 1109, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 1110, 361, 362, 0, 364, - 365, 366, 772, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 1111, 379, 380, 381, 382, 383, - 1112, 384, 773, 386, 387, 388, 0, 390, 391, 774, - 393, 1113, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 775, 406, 776, 408, 1114, 409, 410, - 1115, 411, 0, 413, 414, 415, 416, 417, 1116, 777, - 778, 1117, 1118, 420, 421, 779, 423, 780, 1119, 425, - 426, 781, 428, 429, 430, 431, 432, 1120, 1121, 433, - 434, 435, 436, 437, 1122, 1123, 438, 439, 440, 441, - 442, 1124, 783, 1125, 445, 0, 447, 448, 449, 450, - 1126, 1127, 451, 1128, 1129, 452, 453, 454, 455, 456, - 457, 784, 785, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 469, 470, 471, 472, 1051, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1051, 0, 1672, + 1329, 0, 0, 1330, 1331, 1332, 0, 1333, 1334, 1335, + 1336, 1337, 1338, 93, 94, 95, 96, 97, 98, 99, + 100, 1052, 101, 102, 103, 1053, 1054, 1055, 1056, 1057, + 1058, 1059, 104, 105, 1060, 106, 107, 108, 0, 110, + 111, 112, 743, 744, 0, 745, 746, 1061, 118, 119, + 120, 121, 122, 123, 1062, 1063, 124, 125, 747, 748, + 128, 1064, 129, 130, 131, 132, 749, 1065, 0, 1066, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 1067, 145, 146, 147, 148, 149, 150, 1068, 0, 152, + 153, 154, 1069, 1070, 1071, 0, 1072, 1073, 1074, 156, + 157, 158, 159, 160, 161, 162, 750, 751, 165, 1075, + 166, 1076, 167, 168, 169, 170, 171, 172, 1077, 173, + 174, 175, 176, 177, 1078, 1079, 178, 179, 180, 181, + 182, 1080, 183, 184, 185, 1081, 186, 187, 188, 1082, + 189, 190, 191, 192, 752, 194, 195, 196, 197, 753, + 1083, 199, 1084, 200, 201, 754, 203, 1085, 204, 1086, + 205, 0, 1087, 0, 208, 209, 210, 0, 212, 1088, + 213, 1089, 755, 756, 216, 1090, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 1091, 229, + 230, 231, 232, 233, 234, 1092, 235, 0, 757, 238, + 239, 240, 241, 242, 758, 759, 1093, 760, 1094, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 1095, + 1096, 256, 0, 258, 0, 1097, 260, 261, 262, 1098, + 1099, 263, 264, 265, 266, 267, 761, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 762, 0, 763, 290, 291, + 292, 764, 1100, 294, 295, 0, 297, 1101, 765, 299, + 766, 301, 302, 303, 1102, 304, 305, 1103, 1104, 306, + 307, 308, 1105, 1106, 309, 767, 0, 312, 0, 768, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 1107, 325, 326, 769, 328, 329, 770, 331, 332, 333, + 1108, 334, 335, 336, 337, 338, 339, 1109, 340, 341, + 342, 771, 344, 345, 346, 347, 1110, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 1111, 361, 362, 0, 364, 365, 366, 772, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 1112, + 379, 380, 381, 382, 383, 1113, 384, 773, 386, 387, + 388, 0, 390, 391, 774, 393, 1114, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 775, 406, + 776, 408, 1115, 409, 410, 1116, 411, 0, 413, 414, + 415, 416, 417, 1117, 777, 778, 1118, 1119, 420, 421, + 779, 423, 780, 1120, 425, 426, 781, 428, 429, 430, + 431, 432, 1121, 1122, 433, 434, 435, 436, 437, 1123, + 1124, 438, 439, 440, 441, 442, 1125, 783, 1126, 445, + 0, 447, 448, 449, 450, 1127, 1128, 451, 1129, 1130, + 452, 453, 454, 455, 456, 457, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 794, 469, 470, 471, + 472, 1051, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 1052, 101, 102, 103, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 104, 105, 1060, 106, + 107, 108, 0, 110, 111, 112, 743, 744, 0, 745, + 746, 1061, 118, 119, 120, 121, 122, 123, 1062, 1063, + 124, 125, 747, 748, 128, 1064, 129, 130, 131, 132, + 749, 1065, 0, 1066, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 1067, 145, 146, 147, 148, 149, + 150, 1068, 0, 152, 153, 154, 1069, 1070, 1071, 0, + 1072, 1073, 1074, 156, 157, 158, 159, 160, 161, 162, + 750, 751, 165, 1075, 166, 1076, 167, 168, 169, 170, + 171, 172, 1077, 173, 174, 175, 176, 177, 1078, 1079, + 178, 179, 180, 181, 182, 1080, 183, 184, 185, 1081, + 186, 187, 188, 1082, 189, 190, 191, 192, 752, 194, + 195, 196, 197, 753, 1083, 199, 1084, 200, 201, 754, + 203, 1085, 204, 1086, 205, 0, 1087, 0, 208, 209, + 210, 0, 212, 1088, 213, 1089, 755, 756, 216, 1090, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, + 227, 228, 1091, 229, 230, 231, 232, 233, 234, 1092, + 235, 0, 757, 238, 239, 240, 241, 242, 758, 759, + 1093, 760, 1094, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 1095, 1096, 256, 0, 258, 0, 1097, + 260, 261, 262, 1098, 1099, 263, 264, 265, 266, 267, + 761, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 762, + 0, 763, 290, 291, 292, 764, 1100, 294, 295, 0, + 297, 1101, 765, 299, 766, 301, 302, 303, 1102, 304, + 305, 1103, 1104, 306, 307, 308, 1105, 1106, 309, 767, + 0, 312, 0, 768, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 1107, 325, 326, 769, 328, 329, + 770, 331, 332, 333, 1108, 334, 335, 336, 337, 338, + 339, 1109, 340, 341, 342, 771, 344, 345, 346, 347, + 1110, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 1111, 361, 362, 0, 364, 365, + 366, 772, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 1112, 379, 380, 381, 382, 383, 1113, + 384, 773, 386, 387, 388, 0, 390, 391, 774, 393, + 1114, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 775, 406, 776, 408, 1115, 409, 410, 1116, + 411, 0, 413, 414, 415, 416, 417, 1117, 777, 778, + 1118, 1119, 420, 421, 779, 423, 780, 1120, 425, 426, + 781, 428, 429, 430, 431, 432, 1121, 1122, 433, 434, + 435, 436, 437, 1123, 1124, 438, 439, 440, 441, 442, + 1125, 783, 1126, 445, 0, 447, 448, 449, 450, 1127, + 1128, 451, 1129, 1130, 452, 453, 454, 455, 456, 457, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 469, 470, 471, 472, 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 94, 95, 96, 1815, 98, 99, 100, - 1052, 101, 102, 103, 1053, 1054, 1055, 1056, 1057, 1058, - 1059, 104, 105, 1060, 106, 107, 108, 0, 110, 111, - 112, 743, 744, 0, 745, 746, 1061, 118, 119, 120, - 121, 122, 123, 1062, 1063, 124, 125, 747, 748, 128, - 1064, 129, 130, 131, 132, 749, 1065, 0, 1066, 135, - 136, 137, 138, 139, 140, 0, 142, 143, 144, 1067, - 145, 146, 147, 148, 149, 150, 1068, 0, 152, 153, - 154, 1069, 1070, 1071, 0, 1072, 1073, 1074, 156, 157, - 158, 159, 160, 161, 162, 750, 751, 165, 1075, 166, - 1076, 167, 168, 169, 170, 171, 172, 1077, 173, 174, - 175, 176, 177, 1078, 1079, 178, 179, 180, 1816, 182, - 1080, 183, 184, 185, 1081, 186, 187, 188, 1082, 189, - 190, 191, 192, 752, 194, 195, 196, 197, 753, 1083, - 199, 1084, 200, 201, 754, 203, 1085, 204, 1086, 205, - 0, 1087, 0, 208, 209, 210, 0, 212, 1088, 213, - 1089, 755, 756, 216, 1090, 217, 218, 219, 220, 221, - 222, 223, 0, 225, 226, 227, 228, 1091, 229, 230, - 231, 232, 233, 234, 1092, 235, 0, 757, 238, 239, - 240, 241, 242, 758, 759, 1093, 760, 1094, 246, 0, - 0, 249, 0, 251, 252, 253, 254, 255, 1095, 1096, - 256, 0, 258, 0, 1097, 260, 261, 262, 1098, 1099, - 263, 264, 265, 266, 267, 761, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 762, 0, 763, 290, 291, 292, - 764, 1100, 294, 295, 0, 297, 1101, 765, 299, 766, - 301, 302, 303, 1102, 304, 305, 1103, 1104, 306, 307, - 308, 1105, 1106, 309, 767, 0, 312, 0, 768, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 1107, - 325, 326, 769, 328, 329, 770, 331, 332, 333, 1108, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 771, - 344, 345, 346, 347, 1109, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 1110, 361, + 0, 93, 94, 95, 96, 1816, 98, 99, 100, 1052, + 101, 102, 103, 1053, 1054, 1055, 1056, 1057, 1058, 1059, + 104, 105, 1060, 106, 107, 108, 0, 110, 111, 112, + 743, 744, 0, 745, 746, 1061, 118, 119, 120, 121, + 122, 123, 1062, 1063, 124, 125, 747, 748, 128, 1064, + 129, 130, 131, 132, 749, 1065, 0, 1066, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 1067, 145, + 146, 147, 148, 149, 150, 1068, 0, 152, 153, 154, + 1069, 1070, 1071, 0, 1072, 1073, 1074, 156, 157, 158, + 159, 160, 161, 162, 750, 751, 165, 1075, 166, 1076, + 167, 168, 169, 170, 171, 172, 1077, 173, 174, 175, + 176, 177, 1078, 1079, 178, 179, 180, 1817, 182, 1080, + 183, 184, 185, 1081, 186, 187, 188, 1082, 189, 190, + 191, 192, 752, 194, 195, 196, 197, 753, 1083, 199, + 1084, 200, 201, 754, 203, 1085, 204, 1086, 205, 0, + 1087, 0, 208, 209, 210, 0, 212, 1088, 213, 1089, + 755, 756, 216, 1090, 217, 218, 219, 220, 221, 222, + 223, 0, 225, 226, 227, 228, 1091, 229, 230, 231, + 232, 233, 234, 1092, 235, 0, 757, 238, 239, 240, + 241, 242, 758, 759, 1093, 760, 1094, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 1095, 1096, 256, + 0, 258, 0, 1097, 260, 261, 262, 1098, 1099, 263, + 264, 265, 266, 267, 761, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 762, 0, 763, 290, 291, 292, 764, + 1100, 294, 295, 0, 297, 1101, 765, 299, 766, 301, + 302, 303, 1102, 304, 305, 1103, 1104, 306, 307, 308, + 1105, 1106, 309, 767, 0, 312, 0, 768, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 1107, 325, + 326, 769, 328, 329, 770, 331, 332, 333, 1108, 334, + 335, 336, 337, 338, 339, 1109, 340, 341, 342, 771, + 344, 345, 346, 347, 1110, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 1111, 361, 362, 0, 364, 365, 366, 772, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 1111, 379, 380, - 381, 382, 383, 1112, 1817, 773, 386, 387, 388, 0, - 390, 391, 774, 393, 1113, 394, 395, 396, 397, 398, + 372, 373, 374, 375, 376, 377, 378, 1112, 379, 380, + 381, 382, 383, 1113, 1818, 773, 386, 387, 388, 0, + 390, 391, 774, 393, 1114, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 775, 406, 776, 408, - 1114, 409, 410, 1115, 411, 0, 413, 414, 415, 416, - 417, 1116, 777, 778, 1117, 1118, 420, 421, 779, 423, - 780, 1119, 425, 426, 781, 428, 429, 430, 431, 432, - 1120, 1121, 433, 434, 435, 436, 437, 1122, 1123, 438, - 439, 440, 441, 442, 1124, 783, 1125, 445, 0, 447, - 448, 449, 450, 1126, 1127, 451, 1128, 1129, 452, 453, + 1115, 409, 410, 1116, 411, 0, 413, 414, 415, 416, + 417, 1117, 777, 778, 1118, 1119, 420, 421, 779, 423, + 780, 1120, 425, 426, 781, 428, 429, 430, 431, 432, + 1121, 1122, 433, 434, 435, 436, 437, 1123, 1124, 438, + 439, 440, 441, 442, 1125, 783, 1126, 445, 0, 447, + 448, 449, 450, 1127, 1128, 451, 1129, 1130, 452, 453, 454, 455, 456, 457, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 469, 470, 471, 472, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7113,278 +7122,89 @@ static const yytype_int16 yytable[] = 0, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 858, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 859, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 0, 379, 380, 381, 382, 383, 862, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 864, 408, 0, 409, 410, 0, 411, 412, 413, - 414, 415, 416, 417, 0, 418, 419, 0, 0, 420, - 421, 867, 423, 868, 0, 425, 426, 870, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 871, 0, 438, 439, 440, 441, 442, 443, 444, 0, - 445, 446, 447, 448, 449, 450, 0, 0, 451, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 0, 134, 0, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 151, 152, 153, 154, 0, 0, 0, - 155, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 206, 0, 207, 208, - 209, 210, 211, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 0, 0, 256, 257, 258, 259, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 0, 294, 295, - 296, 297, 0, 298, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 0, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 0, 409, 410, 0, - 411, 412, 413, 414, 415, 416, 417, 0, 418, 419, - 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, - 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, - 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, - 443, 444, 0, 445, 446, 447, 448, 449, 450, 0, - 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, - 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, - 122, 123, 0, 0, 124, 125, 126, 127, 128, 1426, - 129, 130, 131, 132, 133, 0, 0, 1427, 135, 136, - 137, 138, 139, 140, 0, 142, 143, 144, 1428, 145, - 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, - 0, 200, 201, 202, 203, 0, 204, 1429, 205, 0, - 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 1430, - 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, - 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, - 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, - 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, - 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, - 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, - 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, - 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 1431, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, - 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, - 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, - 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, - 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, - 1432, 433, 434, 435, 436, 437, 0, 0, 438, 439, - 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, - 127, 128, 1426, 129, 130, 131, 132, 133, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 1428, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 1429, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 1885, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, - 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 1431, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, - 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, - 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, - 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, - 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, - 431, 432, 0, 1432, 433, 434, 435, 436, 437, 0, - 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, - 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 742, 0, 547, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, - 107, 108, 0, 110, 111, 112, 743, 744, 0, 745, - 746, 0, 118, 119, 120, 121, 122, 123, 0, 0, - 124, 125, 747, 748, 128, 0, 129, 130, 131, 132, - 749, 0, 0, 0, 135, 136, 137, 138, 139, 140, - 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, - 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, - 750, 751, 165, 0, 166, 0, 167, 168, 169, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, - 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, - 186, 187, 188, 0, 189, 190, 191, 192, 752, 194, - 195, 196, 197, 753, 1232, 199, 0, 200, 201, 754, - 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, - 210, 0, 212, 0, 213, 0, 755, 756, 216, 0, - 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, - 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, - 235, 0, 757, 238, 239, 240, 241, 242, 758, 759, - 0, 760, 0, 246, 0, 0, 249, 0, 251, 252, - 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, - 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, - 761, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 762, - 0, 763, 290, 291, 292, 764, 0, 294, 295, 0, - 297, 0, 765, 299, 766, 301, 302, 303, 0, 304, - 305, 1233, 0, 306, 307, 308, 0, 0, 309, 767, - 0, 312, 0, 768, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 0, 325, 326, 769, 328, 329, - 770, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 771, 344, 345, 346, 347, 0, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, - 772, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 0, 379, 380, 381, 382, 383, 0, 384, - 773, 386, 387, 388, 0, 390, 391, 774, 393, 0, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 775, 406, 776, 408, 0, 409, 410, 0, 411, - 0, 413, 414, 415, 416, 417, 0, 777, 778, 0, - 0, 420, 421, 779, 423, 780, 1234, 425, 426, 781, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, - 436, 437, 0, 0, 438, 439, 440, 441, 442, 1124, - 783, 0, 445, 0, 447, 448, 449, 450, 0, 0, - 451, 0, 0, 452, 453, 454, 455, 456, 457, 784, - 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, - 469, 470, 471, 472, 498, 0, 579, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, - 102, 103, 3, 4, 0, 0, 0, 0, 0, 104, - 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, - 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, - 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, - 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, - 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, - 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, - 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, - 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, - 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, - 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, - 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, - 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, - 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, - 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, - 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, - 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, - 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, - 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 498, 0, 579, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 862, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 864, 408, 0, 409, 410, 0, 411, 412, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 867, 423, 868, 0, 425, 426, 870, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 871, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 446, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 92, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 134, 0, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 151, 152, 153, 154, 0, 0, + 0, 155, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 0, 0, 256, 257, 258, + 259, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 0, 294, + 295, 296, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, + 410, 0, 411, 412, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 446, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, - 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 128, 1427, 129, 130, 131, 132, 133, 0, 0, 1428, 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 1429, 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 1430, 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 221, 1431, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, @@ -7393,171 +7213,124 @@ static const yytype_int16 yytable[] = 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, - 300, 301, 302, 303, 0, 304, 305, 0, 580, 306, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 383, 0, 384, 385, 386, 387, 388, - 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 502, 406, 407, - 408, 0, 409, 410, 0, 411, 0, 413, 414, 415, - 416, 417, 0, 418, 419, 0, 0, 420, 421, 422, - 423, 424, 0, 425, 426, 427, 428, 429, 430, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, - 438, 439, 440, 441, 442, 443, 444, 0, 445, 0, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 498, 0, 579, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, - 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, - 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 221, 623, 223, 0, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, - 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 500, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, - 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, - 0, 298, 299, 300, 301, 302, 303, 0, 304, 305, - 0, 580, 306, 307, 308, 0, 0, 309, 310, 0, - 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, - 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, - 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, - 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, - 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, - 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, - 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, - 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 742, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 3, 4, 0, 0, 0, 0, 0, 104, 105, - 0, 106, 107, 108, 0, 110, 111, 112, 743, 744, - 0, 745, 746, 0, 118, 119, 120, 121, 122, 123, - 0, 0, 124, 125, 747, 748, 128, 0, 129, 130, - 131, 132, 749, 0, 0, 0, 135, 136, 137, 138, - 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, - 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, - 161, 162, 750, 751, 165, 0, 166, 0, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, - 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, - 752, 194, 195, 196, 197, 753, 0, 199, 0, 200, - 201, 754, 203, 0, 204, 0, 205, 0, 0, 0, - 208, 209, 210, 0, 212, 0, 213, 0, 755, 756, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, - 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, - 234, 0, 235, 0, 757, 238, 239, 240, 241, 242, - 758, 759, 0, 760, 0, 246, 0, 0, 249, 0, - 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, - 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, - 266, 267, 761, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 762, 0, 763, 290, 291, 292, 764, 0, 294, - 295, 0, 297, 0, 765, 299, 766, 301, 302, 303, - 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, - 309, 767, 0, 312, 0, 768, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 325, 326, 769, - 328, 329, 770, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 771, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, - 365, 366, 772, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 0, 384, 773, 386, 387, 388, 0, 390, 391, 774, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 775, 406, 776, 408, 0, 409, 410, - 0, 411, 0, 413, 414, 415, 416, 417, 0, 777, - 778, 0, 0, 420, 421, 779, 423, 780, 0, 425, - 426, 781, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, - 442, 1124, 783, 0, 445, 0, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 784, 785, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 469, 470, 471, 472, 498, 0, 579, 0, + 1432, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, + 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, + 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, + 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, + 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 0, 1433, 433, 434, 435, 436, 437, 0, + 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, + 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, + 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, + 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, + 124, 125, 126, 127, 128, 1427, 129, 130, 131, 132, + 133, 0, 0, 0, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 1429, 145, 146, 147, 148, 149, + 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, + 203, 0, 204, 1430, 205, 0, 0, 0, 208, 209, + 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, + 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, + 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 0, 0, 256, 0, 258, 1888, 0, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, + 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, + 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, + 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, + 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 1432, 334, 335, 336, 337, 338, + 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, + 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, + 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, + 427, 428, 429, 430, 431, 432, 0, 1433, 433, 434, + 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, + 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 742, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, - 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, - 121, 122, 123, 0, 0, 124, 125, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 0, 0, 0, 135, - 136, 137, 138, 139, 140, 0, 142, 143, 144, 0, - 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 0, 166, - 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, - 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, - 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, - 0, 0, 0, 208, 209, 210, 0, 1724, 0, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, - 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, - 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, - 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, - 256, 0, 258, 0, 0, 260, 261, 1725, 0, 0, - 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, - 293, 0, 294, 295, 0, 297, 0, 298, 299, 300, - 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, - 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, - 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, - 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, - 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, - 0, 409, 410, 1726, 411, 0, 413, 1727, 415, 1728, - 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, - 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, - 0, 0, 433, 434, 1729, 436, 437, 0, 0, 438, - 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, + 743, 744, 0, 745, 746, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 747, 748, 128, 0, + 129, 130, 131, 132, 749, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 750, 751, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 752, 194, 195, 196, 197, 753, 1233, 199, + 0, 200, 201, 754, 203, 0, 204, 0, 205, 0, + 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 755, 756, 216, 0, 217, 218, 219, 220, 221, 222, + 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 0, 757, 238, 239, 240, + 241, 242, 758, 759, 0, 760, 0, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, + 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 761, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 762, 0, 763, 290, 291, 292, 764, + 0, 294, 295, 0, 297, 0, 765, 299, 766, 301, + 302, 303, 0, 304, 305, 1234, 0, 306, 307, 308, + 0, 0, 309, 767, 0, 312, 0, 768, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 769, 328, 329, 770, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 771, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 772, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 773, 386, 387, 388, 0, + 390, 391, 774, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 775, 406, 776, 408, + 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, + 417, 0, 777, 778, 0, 0, 420, 421, 779, 423, + 780, 1235, 425, 426, 781, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 1125, 783, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, - 2655, 0, 0, 0, 0, 2656, 0, 0, 0, 0, + 454, 455, 456, 457, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 469, 470, 471, 472, 498, + 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 98, 99, 100, 0, 101, 102, 103, 3, 4, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, @@ -7586,70 +7359,165 @@ static const yytype_int16 yytable[] = 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 0, 379, 380, 381, 382, 383, 0, 384, 385, 386, - 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 502, - 406, 407, 408, 0, 409, 410, 0, 411, 0, 413, - 414, 415, 416, 417, 0, 418, 419, 0, 0, 420, - 421, 422, 423, 424, 0, 425, 426, 427, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 0, 0, 438, 439, 440, 441, 442, 443, 444, 0, - 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, - 95, 96, 97, 98, 99, 100, 499, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 0, 0, 0, 135, 136, 137, 138, 139, - 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, - 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, - 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, - 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, - 329, 330, 501, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, + 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 580, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 579, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 623, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 580, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, + 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, + 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, + 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, + 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, + 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, + 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 742, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 3, + 4, 0, 0, 0, 0, 0, 104, 105, 0, 106, + 107, 108, 0, 110, 111, 112, 743, 744, 0, 745, + 746, 0, 118, 119, 120, 121, 122, 123, 0, 0, + 124, 125, 747, 748, 128, 0, 129, 130, 131, 132, + 749, 0, 0, 0, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, + 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, + 750, 751, 165, 0, 166, 0, 167, 168, 169, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, + 186, 187, 188, 0, 189, 190, 191, 192, 752, 194, + 195, 196, 197, 753, 0, 199, 0, 200, 201, 754, + 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, + 210, 0, 212, 0, 213, 0, 755, 756, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, + 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, + 235, 0, 757, 238, 239, 240, 241, 242, 758, 759, + 0, 760, 0, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, + 761, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 762, + 0, 763, 290, 291, 292, 764, 0, 294, 295, 0, + 297, 0, 765, 299, 766, 301, 302, 303, 0, 304, + 305, 0, 0, 306, 307, 308, 0, 0, 309, 767, + 0, 312, 0, 768, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 769, 328, 329, + 770, 331, 332, 333, 0, 334, 335, 336, 337, 338, + 339, 0, 340, 341, 342, 771, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 366, 772, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, - 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, + 384, 773, 386, 387, 388, 0, 390, 391, 774, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, - 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, - 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, - 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 403, 404, 775, 406, 776, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 777, 778, + 0, 0, 420, 421, 779, 423, 780, 0, 425, 426, + 781, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, - 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, + 1125, 783, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 498, 0, 547, 0, 0, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 469, 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, @@ -7666,13 +7534,13 @@ static const yytype_int16 yytable[] = 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, - 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 0, 0, 208, 209, 210, 0, 1725, 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, - 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 0, 258, 0, 0, 260, 261, 1726, 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, @@ -7681,243 +7549,54 @@ static const yytype_int16 yytable[] = 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, - 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, - 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, - 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, - 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, - 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, - 99, 100, 554, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, - 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, - 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, - 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, - 415, 416, 417, 0, 555, 419, 0, 0, 556, 421, - 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, - 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, - 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, - 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 498, 0, 579, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, - 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, - 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, - 124, 125, 126, 127, 128, 0, 129, 130, 131, 132, - 133, 0, 0, 0, 135, 136, 137, 138, 139, 140, - 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, - 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, - 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, - 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, - 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, - 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 221, 618, 223, 0, 225, 226, - 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, - 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, - 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, - 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, - 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, - 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, - 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, - 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, - 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 0, 379, 380, 381, 382, 383, 0, 384, - 385, 386, 387, 388, 0, 390, 391, 392, 393, 0, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 502, 406, 407, 408, 0, 409, 410, 0, 411, - 0, 413, 414, 415, 416, 417, 0, 418, 419, 0, - 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, - 436, 437, 0, 0, 438, 439, 440, 441, 442, 443, - 444, 0, 445, 0, 447, 448, 449, 450, 0, 0, - 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 498, 0, 579, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, - 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, - 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, - 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, - 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, - 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, - 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, - 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 621, 223, - 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, - 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, - 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, - 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, - 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, - 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, - 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, - 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, - 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, - 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, - 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 498, 0, 579, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, - 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, - 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, - 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, - 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, - 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, - 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, - 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 221, 625, 223, 0, 225, 226, 227, 228, 0, 229, - 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, - 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, - 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, - 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, - 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, - 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, - 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 383, 0, 384, 385, 386, 387, 388, - 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 502, 406, 407, - 408, 0, 409, 410, 0, 411, 0, 413, 414, 415, - 416, 417, 0, 418, 419, 0, 0, 420, 421, 422, - 423, 424, 0, 425, 426, 427, 428, 429, 430, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, - 438, 439, 440, 441, 442, 443, 444, 0, 445, 0, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 498, 0, 579, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, - 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, - 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, - 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 500, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, - 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, - 0, 298, 299, 300, 301, 302, 303, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, - 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, + 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, + 0, 409, 410, 1727, 411, 0, 413, 1728, 415, 1729, + 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, + 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 1730, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, + 2656, 0, 0, 0, 0, 2657, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, @@ -7935,7 +7614,7 @@ static const yytype_int16 yytable[] = 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 653, 101, 102, + 94, 95, 96, 97, 98, 99, 100, 499, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, @@ -7964,244 +7643,55 @@ static const yytype_int16 yytable[] = 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 0, 384, 385, 386, 387, 388, 0, 390, 391, 392, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 502, 406, 407, 408, 0, 409, 410, - 0, 411, 0, 413, 414, 415, 416, 417, 0, 418, - 419, 0, 0, 420, 421, 422, 423, 424, 0, 425, - 426, 427, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, - 442, 443, 444, 0, 445, 0, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 498, 0, 579, 0, + 328, 329, 330, 501, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, - 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, - 121, 122, 123, 0, 0, 124, 125, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 0, 0, 0, 135, - 136, 137, 138, 139, 140, 0, 142, 143, 144, 0, - 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 0, 166, - 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, - 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, - 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, - 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 1146, 223, 0, 225, 226, 227, 228, 0, 229, 230, - 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, - 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, - 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, - 256, 0, 258, 0, 0, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, - 293, 0, 294, 295, 0, 297, 0, 298, 299, 300, - 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, - 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, - 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, - 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, - 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, - 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, - 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, - 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, - 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, - 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, - 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, - 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, - 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, - 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, - 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, - 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, - 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, - 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, - 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, - 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, - 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 221, 1148, 223, 0, 225, 226, 227, 228, - 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, - 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, - 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, - 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, - 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, - 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, - 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, - 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, - 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 0, 379, 380, 381, 382, 383, 0, 384, 385, 386, - 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 502, - 406, 407, 408, 0, 409, 410, 0, 411, 0, 413, - 414, 415, 416, 417, 0, 418, 419, 0, 0, 420, - 421, 422, 423, 424, 0, 425, 426, 427, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 0, 0, 438, 439, 440, 441, 442, 443, 444, 0, - 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 498, 0, 579, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 0, 0, 0, 135, 136, 137, 138, 139, - 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, - 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 1556, 223, 0, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, - 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, - 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, - 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, - 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, - 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, - 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, - 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, - 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, - 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, - 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 0, 0, 0, 0, 2304, 0, - 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, - 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, - 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, - 129, 130, 131, 132, 133, 0, 0, 0, 135, 136, - 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, - 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, - 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, - 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, - 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, - 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, - 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, - 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, - 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, - 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, - 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, - 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, - 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, - 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, - 0, 418, 419, 0, 0, 420, 421, 422, 423, 424, - 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, - 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 2318, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, - 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, @@ -8217,9 +7707,9 @@ static const yytype_int16 yytable[] = 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 498, 0, 579, 0, 0, 0, 0, 0, 0, + 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 96, 97, 98, 99, 100, 554, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, @@ -8235,7 +7725,7 @@ static const yytype_int16 yytable[] = 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 221, 2452, 223, 0, 225, 226, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, @@ -8249,243 +7739,54 @@ static const yytype_int16 yytable[] = 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 0, 379, 380, 381, 382, 383, 0, 384, - 385, 386, 387, 388, 0, 390, 391, 392, 393, 0, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 502, 406, 407, 408, 0, 409, 410, 0, 411, - 0, 413, 414, 415, 416, 417, 0, 418, 419, 0, - 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, - 436, 437, 0, 0, 438, 439, 440, 441, 442, 443, - 444, 0, 445, 0, 447, 448, 449, 450, 0, 0, - 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, - 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, - 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, - 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, - 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, - 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, - 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, - 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, - 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, - 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, - 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, - 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, - 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, - 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, - 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, - 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, - 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, - 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, + 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, + 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 555, 419, + 0, 0, 556, 421, 422, 423, 424, 0, 425, 426, + 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, + 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, - 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, - 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, - 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, - 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, - 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, - 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, - 205, 0, 0, 0, 208, 209, 210, 0, 566, 0, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, - 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, - 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, - 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, - 0, 256, 0, 258, 0, 0, 260, 261, 567, 0, - 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, - 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, - 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, - 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, - 371, 568, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 569, 0, 384, 385, 386, 387, 388, - 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 502, 406, 407, - 408, 0, 409, 410, 0, 411, 0, 413, 414, 415, - 416, 417, 0, 570, 419, 0, 0, 420, 421, 422, - 423, 424, 0, 425, 426, 427, 428, 429, 430, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, - 438, 439, 440, 441, 442, 443, 444, 0, 445, 0, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, - 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, - 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, - 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 500, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, - 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, - 0, 298, 299, 300, 301, 302, 303, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, - 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 589, 347, 0, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, - 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, - 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, - 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, - 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, - 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, - 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, - 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, - 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, - 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, - 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, - 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, - 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, - 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, - 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, - 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 221, 643, 223, 0, - 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, - 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, - 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, - 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, - 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, - 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, - 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, - 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, - 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 0, 384, 385, 386, 387, 388, 0, 390, 391, 392, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 502, 406, 407, 408, 0, 409, 410, - 0, 411, 0, 413, 414, 415, 416, 417, 0, 418, - 419, 0, 0, 420, 421, 422, 423, 424, 0, 425, - 426, 427, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, - 442, 443, 444, 0, 445, 0, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, - 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, - 121, 122, 123, 0, 0, 124, 125, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 0, 0, 0, 135, - 136, 137, 138, 139, 140, 0, 142, 143, 144, 0, - 145, 146, 147, 148, 149, 150, 0, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 0, 166, - 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 0, 0, 178, 179, 180, 181, 182, - 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, - 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, - 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 730, 223, 0, 225, 226, 227, 228, 0, 229, 230, - 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, - 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, - 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, - 256, 0, 258, 0, 0, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, - 293, 0, 294, 295, 0, 297, 0, 298, 299, 300, - 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, - 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, + 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, + 129, 130, 131, 132, 133, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, + 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, + 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 221, 618, + 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, + 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, + 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, + 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, + 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, @@ -8501,7 +7802,7 @@ static const yytype_int16 yytable[] = 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, @@ -8519,7 +7820,7 @@ static const yytype_int16 yytable[] = 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 221, 733, 223, 0, 225, 226, 227, 228, + 219, 220, 221, 621, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, @@ -8532,55 +7833,150 @@ static const yytype_int16 yytable[] = 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 0, 379, 380, 381, 382, 383, 0, 384, 385, 386, - 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 502, - 406, 407, 408, 0, 409, 410, 0, 411, 0, 413, - 414, 415, 416, 417, 0, 418, 419, 0, 0, 420, - 421, 422, 423, 424, 0, 425, 426, 427, 428, 429, - 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, - 0, 0, 438, 439, 440, 441, 442, 443, 444, 0, - 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, - 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, - 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 0, 0, 0, 135, 136, 137, 138, 139, - 140, 0, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 180, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, - 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, - 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 736, 223, 0, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, - 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, - 252, 253, 254, 255, 0, 0, 256, 0, 258, 0, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, - 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 625, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, + 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 579, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, + 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, + 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, + 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, + 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, + 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, + 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 653, 101, 102, 103, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, + 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, + 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, + 124, 125, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 0, 0, 0, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, + 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, + 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, + 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, + 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, + 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, + 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, + 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, + 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, + 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, + 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, @@ -8595,7 +7991,7 @@ static const yytype_int16 yytable[] = 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, + 468, 469, 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, @@ -8613,7 +8009,7 @@ static const yytype_int16 yytable[] = 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, + 214, 215, 216, 0, 217, 218, 219, 220, 221, 1151, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, @@ -8627,59 +8023,154 @@ static const yytype_int16 yytable[] = 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, - 0, 364, 365, 366, 367, 368, 369, 370, 371, 568, - 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, - 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, - 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, - 409, 410, 0, 411, 0, 413, 414, 415, 416, 417, - 0, 570, 419, 0, 0, 420, 421, 422, 423, 424, - 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, - 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, - 440, 441, 442, 443, 444, 0, 445, 0, 447, 448, - 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 498, 0, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, + 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, + 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, + 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, + 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, + 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 1153, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 1557, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, + 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 0, 0, 0, - 0, 1383, 0, 104, 105, 0, 106, 107, 108, 0, - 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, - 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 0, 0, - 0, 135, 136, 137, 138, 139, 140, 0, 142, 143, - 144, 0, 145, 146, 147, 148, 149, 150, 0, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 0, 166, 0, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 0, 0, 178, 179, 180, - 181, 182, 0, 183, 184, 185, 0, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, - 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, - 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, - 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, - 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, - 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, - 0, 0, 256, 0, 258, 0, 0, 260, 261, 262, - 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, - 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, - 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 2305, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, - 379, 380, 381, 382, 383, 0, 0, 385, 386, 387, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, @@ -8693,7 +8184,7 @@ static const yytype_int16 yytable[] = 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, + 0, 0, 0, 0, 2319, 0, 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, 131, 132, @@ -8708,7 +8199,7 @@ static const yytype_int16 yytable[] = 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 221, 1518, 223, 0, 225, 226, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, @@ -8722,149 +8213,102 @@ static const yytype_int16 yytable[] = 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 0, 379, 380, 381, 382, 383, 0, 384, - 385, 386, 387, 388, 0, 390, 391, 392, 393, 0, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 502, 406, 407, 408, 0, 409, 410, 0, 411, - 0, 413, 414, 415, 416, 417, 0, 418, 419, 0, - 0, 420, 421, 422, 423, 424, 0, 425, 426, 427, - 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, - 436, 437, 0, 0, 438, 439, 440, 441, 442, 443, - 444, 0, 445, 0, 447, 448, 449, 450, 0, 0, - 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 106, 107, 108, 0, 110, 111, 112, 113, - 114, 0, 116, 117, 0, 118, 119, 120, 121, 122, - 123, 0, 0, 124, 125, 126, 127, 128, 0, 129, - 130, 131, 132, 133, 0, 0, 0, 135, 136, 137, - 138, 139, 140, 0, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 0, 0, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 0, 166, 0, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 0, 0, 178, 179, 180, 181, 182, 0, 183, - 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, - 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, - 0, 208, 209, 210, 0, 212, 0, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 1799, 223, - 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, - 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, - 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, - 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, - 258, 0, 0, 260, 261, 262, 0, 0, 263, 264, - 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, - 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, - 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, - 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, - 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, - 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, - 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, - 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, - 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, + 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, + 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, + 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, + 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, + 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 498, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, - 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, - 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, - 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, - 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, - 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, - 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, - 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, - 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 221, 1811, 223, 0, 225, 226, 227, 228, 0, 229, - 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, - 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, - 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, - 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, - 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, - 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, - 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, - 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, - 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, - 380, 381, 382, 383, 0, 384, 385, 386, 387, 388, - 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 502, 406, 407, - 408, 0, 409, 410, 0, 411, 0, 413, 414, 415, - 416, 417, 0, 418, 419, 0, 0, 420, 421, 422, - 423, 424, 0, 425, 426, 427, 428, 429, 430, 431, - 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, - 438, 439, 440, 441, 442, 443, 444, 0, 445, 0, - 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 0, 110, 111, 112, 113, 114, 0, 116, 117, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 180, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, - 0, 204, 0, 205, 0, 0, 0, 208, 209, 210, - 0, 212, 0, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 221, 1813, 223, 0, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, - 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, - 254, 255, 0, 0, 256, 0, 258, 0, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 500, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, - 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, - 0, 298, 299, 300, 301, 302, 303, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, - 312, 0, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, + 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, + 129, 130, 131, 132, 133, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, + 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, + 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 221, 2453, + 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, + 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, + 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, + 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, + 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, + 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, + 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, + 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, + 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, @@ -8896,1564 +8340,1444 @@ static const yytype_int16 yytable[] = 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, - 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 208, 209, 210, 0, 566, 0, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, - 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 0, 0, 260, 261, 567, 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, - 319, 320, 0, 322, 323, 324, 0, 325, 326, 327, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, - 337, 338, 339, 340, 0, 342, 343, 344, 345, 346, - 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 0, 361, 362, 0, 364, - 365, 366, 367, 0, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, - 0, 384, 385, 386, 387, 388, 0, 390, 391, 392, - 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 502, 406, 407, 408, 0, 409, 410, - 0, 411, 0, 413, 414, 415, 416, 417, 0, 418, - 419, 0, 0, 420, 421, 422, 423, 424, 0, 425, - 426, 427, 428, 429, 430, 431, 432, 0, 0, 433, - 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, - 442, 443, 444, 0, 445, 0, 447, 448, 449, 450, - 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 661, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 106, 107, 108, 662, 110, 111, - 112, 0, 663, 664, 665, 666, 0, 118, 119, 120, - 121, 122, 123, 0, 0, 124, 125, 667, 668, 128, - 0, 129, 130, 131, 132, 0, 0, 669, 0, 135, - 136, 137, 138, 139, 140, 670, 142, 143, 144, 0, - 145, 146, 147, 148, 149, 150, 0, 671, 152, 153, - 154, 0, 0, 0, 672, 0, 0, 0, 156, 157, - 158, 159, 160, 161, 162, 673, 674, 165, 0, 166, - 0, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 0, 0, 178, 179, 675, 181, 182, - 0, 183, 184, 185, 0, 186, 187, 188, 0, 189, - 190, 191, 192, 0, 194, 195, 196, 197, 0, 0, - 199, 0, 200, 201, 676, 203, 0, 204, 0, 205, - 677, 0, 678, 208, 209, 210, 679, 212, 0, 213, - 0, 0, 0, 216, 0, 217, 218, 219, 220, 221, - 680, 223, 681, 225, 226, 227, 228, 0, 229, 230, - 231, 232, 233, 234, 0, 235, 682, 0, 238, 239, - 240, 241, 242, 683, 684, 0, 685, 0, 246, 686, - 687, 249, 688, 251, 252, 253, 254, 255, 0, 0, - 256, 689, 258, 690, 0, 260, 261, 262, 0, 0, - 263, 264, 265, 266, 267, 691, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 692, 693, 694, 290, 291, 292, - 0, 0, 294, 295, 695, 297, 0, 0, 299, 696, - 301, 302, 303, 0, 304, 305, 0, 0, 306, 307, - 308, 0, 0, 309, 0, 697, 312, 698, 0, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 325, 326, 0, 328, 329, 0, 331, 332, 333, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 699, - 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, - 362, 700, 364, 365, 366, 701, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, - 381, 382, 383, 0, 384, 702, 386, 387, 388, 703, - 390, 391, 704, 393, 0, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 705, 406, 0, 408, - 0, 409, 410, 0, 411, 706, 413, 414, 415, 416, - 417, 0, 707, 708, 0, 0, 420, 421, 0, 423, - 0, 0, 425, 426, 709, 428, 429, 430, 431, 432, - 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, - 439, 440, 441, 442, 0, 710, 0, 445, 711, 447, - 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, - 454, 455, 456, 457, 661, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 469, 470, 471, 472, 0, - 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 106, 107, 108, 662, 110, 111, 112, 0, - 663, 664, 665, 666, 0, 118, 119, 120, 121, 122, - 123, 0, 0, 124, 125, 667, 668, 128, 0, 129, - 130, 131, 132, 0, 0, 669, 0, 135, 136, 137, - 138, 139, 140, 670, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 0, 671, 152, 153, 154, 0, - 0, 0, 672, 0, 0, 0, 156, 157, 158, 159, - 160, 161, 162, 673, 674, 165, 0, 166, 0, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, - 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, - 192, 0, 194, 195, 196, 197, 0, 0, 199, 0, - 200, 201, 676, 203, 0, 204, 0, 205, 677, 0, - 678, 208, 209, 210, 679, 212, 0, 213, 0, 0, - 0, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 681, 225, 226, 227, 228, 0, 229, 230, 231, 232, - 233, 234, 0, 235, 682, 0, 238, 239, 240, 241, - 242, 683, 684, 0, 685, 0, 246, 686, 687, 249, - 688, 251, 252, 253, 254, 255, 0, 0, 256, 689, - 258, 690, 0, 260, 261, 262, 0, 0, 263, 264, - 265, 266, 267, 691, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 692, 693, 694, 290, 291, 292, 0, 0, - 294, 295, 695, 297, 0, 0, 299, 696, 301, 302, - 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 0, 309, 0, 697, 312, 698, 0, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, - 0, 328, 329, 0, 331, 332, 333, 0, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 699, 344, 345, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 361, 362, 700, - 364, 365, 366, 701, 368, 369, 370, 371, 372, 373, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 568, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, - 383, 0, 384, 702, 386, 387, 388, 703, 390, 391, - 704, 393, 0, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 705, 406, 0, 408, 0, 409, - 410, 0, 411, 706, 413, 414, 415, 416, 417, 0, - 707, 708, 0, 0, 420, 421, 0, 423, 0, 0, - 425, 426, 709, 428, 429, 430, 431, 432, 0, 0, + 569, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 570, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, - 441, 442, 0, 710, 0, 445, 711, 447, 448, 449, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, - 456, 457, 2390, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 469, 470, 471, 472, 0, 93, 94, - 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 106, 107, 108, 2391, 110, 111, 112, 0, 663, 2392, - 665, 666, 0, 118, 119, 120, 121, 122, 123, 0, - 0, 124, 125, 667, 668, 128, 0, 129, 130, 131, - 132, 0, 0, 2393, 0, 135, 136, 137, 138, 139, - 140, 2394, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 0, 2395, 152, 153, 154, 0, 0, 0, - 2396, 0, 0, 0, 156, 157, 158, 159, 160, 161, - 162, 673, 674, 165, 0, 166, 0, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, - 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, - 0, 186, 187, 188, 0, 189, 190, 191, 192, 0, - 194, 195, 196, 197, 0, 0, 199, 0, 200, 201, - 676, 203, 0, 204, 0, 205, 2397, 0, 2398, 208, - 209, 210, 2399, 212, 0, 213, 0, 0, 0, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 2400, 225, - 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, - 0, 235, 2401, 0, 238, 239, 240, 241, 242, 683, - 684, 0, 685, 0, 246, 2402, 2403, 249, 2404, 251, - 252, 253, 254, 255, 0, 0, 256, 2405, 258, 2406, - 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, - 267, 2600, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 692, 2408, 694, 290, 291, 292, 0, 0, 294, 295, - 2410, 297, 0, 0, 299, 696, 301, 302, 303, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, - 0, 2412, 312, 2413, 0, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 325, 326, 0, 328, - 329, 0, 331, 332, 333, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 699, 344, 345, 346, 347, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 343, 344, 345, 589, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, + 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, + 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, + 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, + 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, + 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, + 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, + 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, + 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, + 124, 125, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 0, 0, 0, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, + 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, + 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, + 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 643, 223, 0, 225, 226, + 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, + 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, + 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, + 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, + 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, + 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, + 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 0, 361, 362, 2414, 364, 365, - 366, 0, 368, 369, 370, 371, 372, 373, 374, 375, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, - 384, 0, 386, 387, 388, 2416, 390, 391, 704, 393, + 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 2601, 406, 0, 408, 0, 409, 410, 0, - 411, 2418, 413, 414, 415, 416, 417, 0, 707, 708, - 0, 0, 420, 421, 0, 423, 0, 0, 425, 426, - 2419, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, + 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, + 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, - 0, 710, 0, 445, 2420, 447, 448, 449, 450, 0, + 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, - 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 469, 470, 471, 472, 0, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 106, 107, - 108, 662, 110, 111, 112, 0, 663, 664, 665, 666, - 0, 118, 119, 120, 121, 122, 123, 0, 0, 124, - 125, 667, 668, 128, 0, 129, 130, 131, 132, 0, - 0, 669, 0, 135, 136, 137, 138, 139, 140, 670, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 0, 671, 152, 153, 154, 0, 0, 0, 672, 0, - 0, 0, 156, 157, 158, 159, 160, 161, 162, 673, - 674, 165, 0, 166, 0, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 0, 0, 178, - 179, 675, 181, 182, 0, 183, 184, 185, 0, 186, - 187, 188, 0, 189, 190, 191, 192, 0, 194, 195, - 196, 197, 0, 0, 199, 0, 200, 201, 676, 203, - 0, 204, 0, 205, 677, 0, 678, 208, 209, 210, - 679, 212, 0, 213, 0, 0, 0, 216, 0, 217, - 218, 219, 220, 221, 222, 223, 681, 225, 226, 227, - 228, 0, 229, 230, 231, 232, 233, 234, 0, 235, - 682, 0, 238, 239, 240, 241, 242, 683, 684, 0, - 685, 0, 246, 686, 687, 249, 688, 251, 252, 253, - 254, 255, 0, 0, 256, 689, 258, 690, 0, 260, - 261, 262, 0, 0, 263, 264, 265, 266, 267, 0, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 692, 693, - 694, 290, 291, 292, 0, 0, 294, 295, 695, 297, - 0, 0, 299, 696, 301, 302, 303, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 0, 309, 0, 697, - 312, 698, 0, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 0, 325, 326, 0, 328, 329, 0, - 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 699, 344, 345, 346, 347, 0, 348, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, + 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, + 129, 130, 131, 132, 133, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, + 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, + 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 221, 730, + 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, + 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, + 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, + 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, + 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, + 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, + 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, + 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, + 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 733, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 0, 361, 362, 700, 364, 365, 366, 0, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 0, 379, 380, 381, 382, 383, 0, 384, 0, - 386, 387, 388, 703, 390, 391, 704, 393, 0, 394, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 0, 406, 0, 408, 0, 409, 410, 0, 411, 706, - 413, 414, 415, 416, 417, 0, 707, 708, 0, 0, - 420, 421, 0, 423, 0, 0, 425, 426, 709, 428, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, - 437, 0, 0, 438, 439, 440, 441, 442, 0, 710, - 0, 445, 711, 447, 448, 449, 450, 0, 0, 451, - 0, 0, 452, 453, 454, 455, 456, 457, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, - 470, 471, 472 -}; - -static const yytype_int16 yycheck[] = -{ - 6, 6, 622, 492, 529, 637, 74, 0, 629, 588, - 615, 0, 535, 702, 36, 526, 565, 16, 583, 20, - 21, 999, 0, 16, 799, 972, 732, 799, 734, 1809, - 6, 997, 0, 879, 1141, 0, 1141, 1141, 1172, 528, - 1141, 881, 708, 631, 1228, 31, 533, 977, 1275, 1815, - 1737, 1817, 76, 944, 622, 1177, 624, 897, 626, 974, - 534, 1038, 76, 1304, 1305, 30, 535, 2147, 2174, 909, - 0, 1630, 1631, 1693, 35, 2189, 1635, 2147, 2175, 1757, - 1806, 2185, 21, 2057, 667, 668, 2099, 1002, 1256, 807, - 5, 56, 2009, 5, 1853, 1854, 1855, 5, 5, 9, - 1357, 0, 5, 89, 537, 13, 14, 2464, 5, 50, - 2063, 694, 5, 5, 73, 5, 0, 1676, 1677, 2460, - 5, 13, 14, 1407, 58, 5, 5, 5, 13, 14, - 5, 9, 1142, 13, 14, 58, 0, 5, 13, 14, - 93, 9, 917, 5, 5, 1409, 5, 13, 14, 5, - 168, 5, 16, 612, 1880, 642, 5, 5, 27, 738, - 2513, 3, 612, 83, 960, 34, 30, 169, 2447, 40, - 40, 11, 36, 3, 4, 5, 4, 9, 145, 9, - 11, 9, 11, 48, 1270, 117, 27, 75, 1270, 31, - 32, 67, 56, 34, 93, 137, 2549, 214, 86, 4, - 866, 41, 168, 15, 9, 27, 27, 127, 58, 93, - 41, 986, 76, 34, 989, 990, 2088, 122, 2062, 1945, - 1946, 305, 1997, 281, 58, 169, 174, 305, 220, 1270, - 283, 2535, 2635, 73, 2429, 289, 117, 120, 220, 75, - 2697, 168, 73, 826, 827, 212, 2558, 2377, 289, 269, - 86, 2736, 2604, 68, 352, 2804, 78, 120, 373, 117, - 59, 272, 188, 120, 107, 87, 27, 2579, 67, 852, - 11, 169, 135, 162, 266, 353, 799, 11, 27, 2620, - 799, 2118, 2635, 806, 266, 115, 234, 806, 2892, 165, - 107, 118, 1010, 11, 116, 435, 985, 11, 877, 1017, - 118, 435, 37, 147, 115, 203, 158, 41, 173, 160, - 2867, 2070, 2869, 108, 399, 451, 343, 882, 1733, 490, - 201, 219, 289, 494, 189, 167, 130, 169, 802, 194, - 228, 413, 454, 1748, 2308, 2415, 924, 2117, 2312, 73, - 108, 324, 30, 325, 371, 910, 2299, 2832, 1968, 434, - 207, 195, 492, 2459, 2958, 73, 478, 301, 492, 2456, - 496, 2198, 2911, 190, 186, 230, 54, 378, 2672, 130, - 353, 936, 190, 224, 893, 457, 198, 492, 2735, 231, - 300, 130, 374, 213, 283, 266, 2943, 268, 2114, 124, - 2116, 970, 374, 208, 492, 492, 919, 920, 917, 283, - 919, 920, 58, 487, 234, 2717, 2863, 2602, 1270, 487, - 344, 364, 2765, 433, 939, 273, 342, 1976, 1977, 1978, - 1979, 344, 311, 1982, 1983, 1984, 1985, 1986, 1987, 1988, - 1989, 1990, 1991, 377, 492, 234, 1154, 0, 1043, 492, - 316, 433, 496, 2573, 2929, 411, 345, 400, 2801, 266, - 348, 433, 315, 2732, 2298, 496, 404, 2232, 406, 1545, - 427, 345, 273, 1545, 1546, 1547, 1693, 986, 1728, 1729, - 989, 990, 495, 2345, 278, 2034, 2035, 2834, 496, 496, - 1427, 1277, 294, 431, 411, 405, 1770, 2890, 441, 482, - 492, 2217, 2833, 482, 344, 388, 389, 1507, 1739, 2613, - 933, 454, 1759, 1544, 482, 437, 1483, 1771, 450, 968, - 344, 376, 381, 535, 482, 481, 11, 482, 968, 1151, - 526, 1142, 2874, 411, 2604, 478, 397, 397, 494, 535, - 435, 490, 444, 1511, 2604, 494, 535, 2890, 1765, 492, - 381, 534, 543, 2847, 545, 546, 41, 615, 2522, 456, - 433, 492, 428, 2527, 578, 454, 2530, 400, 564, 565, - 381, 2514, 496, 496, 578, 387, 456, 568, 390, 339, - 454, 478, 2489, 496, 2354, 411, 433, 492, 73, 1747, - 492, 491, 588, 492, 492, 492, 1165, 586, 478, 492, - 1173, 1174, 240, 490, 493, 492, 495, 494, 115, 1395, - 492, 2367, 492, 445, 597, 1582, 545, 492, 597, 493, - 266, 495, 492, 492, 492, 160, 602, 492, 482, 597, - 445, 627, 628, 629, 492, 1246, 492, 2741, 589, 597, - 492, 492, 597, 492, 1352, 2739, 492, 2734, 492, 197, - 2055, 197, 2057, 492, 492, 485, 486, 487, 488, 454, - 1169, 483, 484, 483, 484, 483, 484, 488, 247, 488, - 1171, 1180, 496, 1182, 329, 2343, 106, 597, 1187, 186, - 534, 535, 1260, 478, 31, 32, 13, 14, 483, 484, - 1259, 1456, 1261, 1545, 1546, 1204, 1265, 2446, 344, 158, - 158, 1466, 1313, 2667, 1469, 163, 702, 1222, 1882, 1278, - 1279, 490, 1281, 240, 416, 494, 1217, 1230, 481, 357, - 240, 1299, 1300, 240, 578, 371, 1235, 1236, 456, 240, - 265, 494, 1301, 2449, 268, 130, 1291, 2347, 456, 273, - 1219, 1220, 738, 597, 1355, 400, 93, 1226, 4, 447, - 478, 1968, 2839, 9, 485, 486, 487, 488, 1267, 1268, - 478, 268, 1271, 1272, 492, 1229, 1344, 1970, 360, 456, - 158, 1230, 231, 231, 492, 163, 1354, 329, 1356, 483, - 484, 485, 486, 487, 488, 404, 2017, 406, 2884, 323, - 2560, 478, 447, 431, 1906, 1998, 2046, 2047, 2048, 2049, - 1912, 4, 1567, 799, 2874, 1567, 9, 1308, 799, 357, - 806, 807, 808, 365, 2874, 806, 246, 365, 404, 802, - 406, 280, 280, 1659, 254, 23, 492, 1657, 824, 24, - 357, 29, 1528, 1444, 487, 30, 163, 1316, 5, 364, - 357, 494, 1452, 231, 1630, 1631, 357, 2317, 400, 1635, - 2320, 481, 400, 1549, 492, 1551, 115, 853, 1554, 94, - 1741, 56, 492, 75, 487, 1833, 878, 1425, 109, 110, - 2957, 494, 492, 268, 86, 400, 75, 873, 874, 875, - 475, 877, 878, 278, 1479, 1480, 1481, 86, 218, 1856, - 1676, 1677, 280, 884, 1452, 447, 1507, 1406, 1407, 447, - 494, 240, 893, 2308, 431, 901, 2030, 2312, 283, 2912, - 2913, 431, 4, 1471, 431, 906, 441, 9, 1476, 496, - 431, 498, 4, 919, 920, 329, 917, 9, 919, 920, - 2147, 1761, 2702, 2482, 169, 1436, 1841, 135, 493, 953, - 954, 496, 956, 184, 185, 64, 65, 1456, 802, 953, - 954, 2707, 956, 145, 252, 253, 1525, 1466, 2961, 955, - 1469, 365, 475, 959, 960, 492, 158, 492, 203, 945, - 485, 163, 492, 1893, 970, 492, 1896, 566, 567, 23, - 569, 492, 8, 1462, 219, 11, 840, 167, 1467, 985, - 16, 17, 18, 228, 493, 496, 400, 496, 483, 484, - 485, 486, 487, 488, 454, 492, 456, 248, 249, 250, - 251, 252, 253, 493, 1010, 256, 257, 364, 357, 493, - 212, 1017, 2571, 1500, 878, 1001, 490, 262, 492, 1572, - 494, 1540, 1541, 1576, 168, 1578, 2210, 296, 1539, 231, - 214, 493, 1038, 447, 496, 218, 184, 185, 1644, 493, - 1646, 1647, 496, 400, 1567, 23, 23, 493, 1567, 475, - 496, 29, 29, 361, 362, 492, 86, 1580, 88, 493, - 90, 1580, 496, 13, 14, 1644, 1645, 1646, 1647, 2176, - 150, 2176, 2176, 1584, 493, 2176, 337, 496, 280, 287, - 2639, 135, 431, 493, 441, 54, 496, 289, 445, 953, - 954, 493, 956, 23, 496, 364, 493, 454, 2513, 29, - 150, 240, 1681, 348, 252, 253, 1812, 2522, 1814, 150, - 361, 362, 2527, 2800, 8, 2530, 493, 11, 150, 496, - 2347, 478, 16, 17, 18, 13, 14, 1652, 149, 8, - 1735, 400, 11, 341, 2549, 492, 1142, 16, 17, 18, - 404, 2275, 406, 492, 492, 23, 493, 268, 1154, 496, - 2128, 29, 493, 5, 33, 496, 8, 135, 135, 1165, - 494, 2127, 14, 371, 1936, 1171, 1172, 2947, 2115, 13, - 14, 493, 441, 25, 496, 493, 493, 29, 496, 496, - 1976, 1977, 1978, 1979, 447, 454, 1982, 1983, 1984, 1985, - 1986, 1987, 1988, 1989, 1990, 1991, 2126, 145, 2128, 493, - 13, 14, 496, 2169, 2891, 135, 23, 36, 36, 478, - 158, 1217, 29, 361, 362, 163, 13, 14, 357, 1738, - 2635, 472, 473, 492, 1230, 427, 55, 2914, 13, 14, - 438, 1230, 674, 287, 493, 130, 1229, 496, 2034, 2035, - 1246, 492, 82, 1875, 1910, 1911, 2086, 13, 14, 285, - 1769, 1770, 2667, 1259, 696, 1261, 492, 135, 1264, 1265, - 458, 156, 493, 1256, 212, 496, 444, 1256, 1274, 1270, - 1276, 1277, 1278, 1279, 1280, 1281, 1282, 106, 1256, 609, - 492, 611, 2969, 231, 726, 13, 14, 341, 1256, 343, - 493, 1256, 431, 496, 404, 1301, 406, 1303, 493, 67, - 194, 496, 1308, 1309, 1310, 1311, 1312, 1313, 312, 287, - 287, 1317, 1318, 1934, 13, 14, 1322, 371, 135, 2313, - 1326, 2315, 216, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1336, 1337, 280, 493, 1340, 493, 496, 216, 496, 1345, - 492, 289, 1348, 364, 1350, 150, 1352, 115, 35, 1355, - 2765, 2485, 493, 492, 492, 496, 492, 287, 493, 337, - 337, 496, 1363, 341, 341, 1229, 492, 196, 493, 1375, - 150, 496, 2147, 1372, 13, 14, 150, 2604, 273, 400, - 150, 1892, 493, 278, 493, 496, 2801, 496, 1907, 1395, - 283, 285, 1256, 371, 371, 1277, 838, 13, 14, 493, - 1406, 1407, 496, 400, 172, 2383, 285, 337, 2355, 287, - 492, 341, 493, 1936, 856, 496, 1381, 246, 493, 493, - 441, 496, 496, 36, 2012, 254, 2005, 229, 493, 493, - 1436, 496, 496, 454, 13, 14, 1442, 266, 1444, 492, - 1929, 371, 490, 479, 480, 481, 1957, 483, 484, 485, - 486, 487, 488, 483, 149, 1319, 5, 478, 2304, 337, - 438, 438, 493, 341, 1975, 496, 5, 497, 297, 296, - 287, 492, 2318, 493, 492, 2890, 496, 1483, 492, 427, - 1486, 1487, 493, 1489, 493, 496, 163, 496, 493, 2000, - 492, 496, 493, 371, 493, 496, 2007, 496, 13, 14, - 268, 1507, 2067, 2209, 492, 273, 2640, 2095, 438, 493, - 13, 14, 496, 1395, 343, 130, 492, 1381, 1524, 1525, - 337, 492, 23, 418, 341, 2146, 493, 2148, 29, 496, - 13, 14, 67, 1539, 429, 492, 365, 364, 73, 5, - 493, 156, 490, 496, 493, 493, 494, 496, 316, 1514, - 580, 86, 493, 492, 371, 496, 385, 2162, 5, 493, - 438, 1567, 496, 331, 493, 493, 1567, 496, 496, 599, - 1571, 5, 493, 400, 1580, 496, 1582, 492, 1584, 1580, - 115, 493, 117, 1589, 496, 479, 480, 481, 1594, 483, - 484, 485, 486, 487, 488, 493, 13, 14, 496, 2374, - 479, 480, 481, 492, 483, 484, 485, 486, 487, 488, - 1632, 5, 493, 493, 441, 496, 496, 492, 648, 649, - 650, 438, 13, 14, 1630, 1631, 1632, 454, 2147, 1635, - 13, 14, 13, 14, 135, 492, 2147, 172, 1644, 1645, - 1646, 1647, 13, 14, 2610, 13, 14, 2874, 1654, 492, - 1514, 478, 1658, 268, 492, 1661, 352, 353, 273, 1681, - 428, 13, 14, 278, 493, 492, 201, 435, 492, 364, - 1676, 1677, 13, 14, 492, 1681, 352, 353, 256, 257, - 2386, 2387, 6, 361, 362, 492, 2482, 11, 492, 1695, - 146, 15, 1698, 492, 1700, 2206, 20, 21, 22, 23, - 24, 352, 353, 27, 2476, 400, 30, 31, 9, 8, - 34, 35, 11, 492, 364, 1721, 455, 16, 17, 18, - 352, 353, 919, 920, 15, 214, 2415, 1733, 1733, 496, - 1752, 97, 56, 268, 33, 371, 2324, 94, 273, 36, - 163, 229, 1748, 1748, 280, 163, 441, 278, 1630, 1631, - 400, 2339, 492, 1635, 1747, 411, 1762, 1733, 1747, 454, - 492, 86, 86, 87, 88, 89, 90, 496, 1632, 1747, - 411, 54, 1748, 1779, 1780, 2571, 11, 54, 411, 1747, - 15, 316, 1747, 478, 174, 2334, 287, 259, 23, 411, - 493, 441, 1798, 501, 1676, 1677, 331, 492, 93, 34, - 35, 411, 454, 418, 454, 150, 494, 197, 142, 1815, - 1816, 1817, 169, 8, 429, 268, 11, 1681, 268, 36, - 1821, 16, 17, 18, 492, 36, 492, 9, 478, 2604, - 35, 490, 409, 409, 496, 1699, 337, 490, 33, 411, - 341, 411, 492, 2639, 234, 411, 203, 411, 450, 492, - 1856, 1715, 87, 11, 339, 2374, 496, 491, 496, 501, - 2379, 409, 219, 492, 273, 1866, 492, 411, 177, 1733, - 371, 228, 159, 493, 2385, 168, 435, 36, 1879, 212, - 492, 374, 496, 1747, 1748, 220, 1892, 284, 1752, 305, - 305, 921, 496, 428, 492, 268, 289, 220, 288, 220, - 435, 321, 2421, 2422, 281, 262, 447, 492, 492, 150, - 150, 454, 268, 283, 475, 475, 946, 216, 493, 490, - 493, 283, 268, 36, 8, 493, 283, 11, 1934, 36, - 1936, 493, 16, 17, 18, 1936, 493, 438, 491, 493, - 1941, 971, 1943, 493, 168, 475, 1947, 1948, 1954, 33, - 2928, 1957, 494, 2476, 984, 493, 8, 1963, 168, 11, - 1966, 493, 411, 1969, 16, 17, 18, 1932, 493, 1975, - 1976, 1977, 1978, 1979, 2042, 1005, 1982, 1983, 1984, 1985, - 1986, 1987, 1988, 1989, 1990, 1991, 285, 2009, 493, 1995, - 1996, 348, 451, 493, 2000, 493, 493, 493, 492, 2005, - 492, 2007, 492, 2009, 293, 492, 451, 283, 441, 477, - 481, 284, 2018, 284, 404, 2021, 406, 2023, 2040, 284, - 433, 216, 496, 239, 2030, 2031, 411, 492, 2034, 2035, - 268, 150, 197, 2039, 2040, 2057, 287, 411, 428, 150, - 150, 431, 411, 275, 2649, 275, 411, 411, 491, 2055, - 2055, 2057, 2057, 493, 492, 454, 493, 496, 281, 36, - 150, 283, 2068, 491, 491, 150, 273, 141, 1932, 168, - 11, 163, 2078, 168, 2593, 2594, 451, 168, 435, 2055, - 2569, 2057, 2703, 493, 492, 2604, 2718, 493, 2094, 493, - 285, 493, 400, 2604, 1976, 1977, 1978, 1979, 496, 2874, - 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, - 8, 478, 177, 11, 493, 1145, 345, 493, 16, 17, - 18, 440, 84, 284, 150, 172, 422, 36, 79, 2654, - 493, 492, 216, 492, 168, 493, 2142, 435, 493, 492, - 2146, 2147, 2148, 493, 491, 2009, 2147, 2672, 496, 492, - 402, 219, 2034, 2035, 496, 36, 493, 493, 292, 483, - 2671, 492, 492, 2674, 216, 489, 493, 493, 492, 219, - 492, 2172, 492, 497, 55, 2807, 2040, 501, 493, 54, - 479, 480, 481, 2762, 483, 484, 485, 486, 487, 488, - 290, 2055, 181, 2057, 454, 481, 199, 187, 1228, 493, - 2206, 285, 273, 273, 528, 529, 530, 2786, 411, 2788, - 3, 411, 5, 494, 494, 494, 494, 2223, 36, 494, - 494, 545, 494, 268, 494, 106, 494, 494, 494, 107, - 494, 494, 2197, 285, 481, 2724, 494, 494, 8, 494, - 564, 565, 566, 567, 494, 569, 16, 17, 18, 494, - 494, 494, 2873, 2778, 283, 494, 580, 494, 494, 2879, - 494, 494, 493, 2269, 2270, 589, 501, 494, 2274, 2275, - 454, 492, 36, 2279, 494, 599, 2282, 2283, 602, 494, - 492, 2287, 168, 492, 479, 480, 481, 302, 483, 484, - 485, 486, 487, 488, 492, 530, 219, 453, 492, 131, - 86, 493, 2308, 2308, 331, 50, 2312, 2312, 220, 492, - 81, 492, 115, 2802, 36, 196, 109, 110, 216, 1349, - 150, 73, 493, 122, 648, 649, 650, 150, 2334, 36, - 2331, 493, 2308, 2197, 353, 353, 2312, 54, 36, 492, - 492, 1371, 492, 1373, 492, 492, 435, 496, 73, 36, - 95, 186, 440, 435, 589, 2874, 422, 67, 286, 67, - 492, 2367, 492, 2874, 36, 246, 371, 496, 355, 481, - 2376, 2336, 2337, 254, 273, 186, 121, 244, 492, 2385, - 422, 36, 286, 492, 286, 266, 492, 285, 526, 493, - 1420, 184, 185, 266, 139, 479, 480, 481, 143, 483, - 484, 485, 486, 487, 488, 352, 493, 283, 9, 2415, - 199, 492, 338, 283, 283, 33, 297, 493, 120, 164, - 492, 433, 167, 9, 22, 597, 493, 479, 480, 481, - 526, 483, 484, 485, 486, 487, 488, 182, 2129, 2142, - 1450, 1810, 1230, 2338, 2308, 2092, 1373, 2801, 2312, 2545, - 2870, 2379, 2876, 2950, 2455, 248, 249, 250, 251, 252, - 253, 2710, 343, 256, 257, 2927, 2915, 1497, 1498, 2625, - 2476, 1804, 2336, 2337, 1816, 2476, 2482, 972, 2873, 2485, - 2190, 1868, 2925, 2489, 365, 2146, 170, 1801, 812, 2871, - 174, 2497, 2498, 2458, 2757, 2501, 2182, 1580, 1372, 1872, - 2172, 1934, 2476, 938, 385, 1762, 911, 2513, 2513, 1423, - 2775, 963, 2690, 197, 962, 285, 2522, 2522, 2861, 1779, - 2072, 2527, 2527, 1395, 2530, 2530, 2856, 2330, 273, 2790, - 1422, 2537, 2538, 965, 1748, 2057, 281, 2513, 2314, 2540, - 2299, 2668, 2055, 2549, 2549, 2551, 2522, 2765, 2764, 2782, - 234, 2527, 2783, 1270, 2530, 879, 1270, 241, 1270, 1270, - 2541, 2859, 2843, 2860, 702, 2571, 1659, 1261, 361, 362, - 1346, 1765, 1699, 2549, 1590, 1350, 1489, 1696, 323, 1736, - 2071, 479, 480, 481, 1876, 483, 484, 485, 486, 487, - 488, 945, 2093, -1, 2458, 1219, -1, 921, 2604, -1, - 2482, -1, 1171, 2604, 288, 526, 702, -1, -1, -1, - 526, -1, -1, 8, 938, 939, 11, -1, -1, -1, - -1, 945, 946, 947, -1, -1, -1, -1, -1, 2635, - 2635, -1, -1, 2639, 2640, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, 971, 972, 2614, - -1, -1, -1, 48, -1, -1, 2678, 2663, 2522, 2635, - 984, 2667, 2667, 2527, -1, 2671, 2530, -1, 2674, -1, - 808, 2636, 2678, 357, -1, -1, -1, 1001, 73, 472, - 473, 1005, -1, -1, -1, -1, -1, 2693, -1, 2571, - -1, 2667, -1, -1, -1, -1, 1726, 2703, -1, -1, - -1, 2707, 2708, 938, -1, -1, 36, -1, -1, 479, - 480, 481, 808, 483, 484, 485, 486, 487, 488, -1, - 404, -1, 406, -1, -1, 55, -1, -1, -1, -1, - -1, -1, 2733, -1, -1, -1, -1, -1, 422, 526, - -1, -1, -1, -1, 428, 36, -1, 431, 143, -1, - 2614, -1, -1, -1, -1, -1, 2762, 2639, -1, 2765, - 2765, -1, -1, -1, 55, -1, -1, -1, -1, -1, - -1, -1, 2636, 2738, -1, -1, 106, 107, 173, 917, - 2786, 702, 2788, -1, 2790, 115, 702, -1, -1, 2765, - -1, -1, -1, -1, 189, 2801, 2801, -1, -1, 194, - -1, -1, -1, 2667, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1137, 2678, 106, 2822, -1, -1, 0, - -1, 1145, -1, -1, -1, 2801, -1, -1, -1, 1153, - -1, -1, 2797, -1, -1, 230, 2842, 2843, -1, -1, - -1, -1, 172, 1873, -1, -1, -1, 985, -1, -1, - 2856, 1881, 1882, -1, -1, 1885, -1, -1, -1, -1, - 1184, -1, -1, -1, -1, -1, 196, 2873, 2874, 1899, - -1, -1, -1, 2874, 2738, -1, -1, -1, -1, -1, - -1, 172, -1, -1, 2890, 2890, 2892, 808, -1, 985, - 285, -1, 808, -1, -1, 1219, 1220, -1, 1222, 1223, - -1, 1225, 1226, -1, 1228, 196, -1, -1, -1, -1, - -1, -1, 93, -1, 2890, 702, 246, -1, 2883, -1, - -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, - -1, -1, -1, 2797, -1, -1, 266, -1, 268, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1275, 2958, -1, -1, 246, -1, -1, -1, -1, - -1, -1, 1286, 254, 145, -1, -1, 297, -1, -1, - -1, -1, -1, -1, -1, 266, -1, 158, -1, -1, - -1, 376, 163, -1, -1, -1, -1, 168, 1223, -1, - 1225, -1, 1316, -1, -1, -1, 177, -1, -1, -1, - 181, -1, -1, -1, -1, -1, 297, -1, -1, -1, - -1, -1, -1, 343, -1, -1, -1, -1, -1, 2883, - -1, 808, 2052, 2053, 2054, 1349, 1350, -1, -1, -1, - -1, 212, -1, 1171, 1172, 365, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1371, -1, 1373, - 231, -1, 343, -1, -1, 385, -1, 387, -1, 1383, - 390, 1385, -1, -1, 985, -1, -1, -1, -1, 985, - -1, -1, -1, -1, 365, 1171, 1172, -1, 2108, 1217, - -1, 476, -1, -1, -1, -1, -1, -1, 483, 484, - 485, 486, 487, 488, 385, -1, 1420, -1, -1, 280, - -1, -1, 283, 1427, 1428, -1, -1, -1, 289, -1, - -1, -1, -1, -1, 1438, 1439, 1440, 1441, -1, 1443, - -1, 1217, -1, -1, -1, 1449, -1, 1451, -1, 93, - -1, -1, -1, -1, -1, -1, -1, -1, 1462, 1463, - -1, -1, -1, 1467, 1468, -1, -1, 2177, 1472, 1473, - 1474, 1475, -1, 1477, 1478, -1, -1, -1, -1, -1, - -1, -1, 492, -1, 345, -1, -1, -1, -1, -1, - 1308, -1, -1, 1497, 1498, 1499, -1, -1, -1, -1, - 2210, 145, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1515, -1, 1428, 158, -1, -1, -1, 985, 163, - -1, -1, -1, 1438, 168, 1440, -1, -1, 1443, -1, - -1, -1, 1308, 177, 1449, -1, 1451, 181, -1, 400, - -1, -1, 526, -1, -1, -1, 8, -1, 1463, 11, - -1, -1, -1, 1468, 16, 17, 18, 1472, 1473, 1474, - 1475, -1, 1477, 1478, -1, -1, 427, -1, 212, -1, - 1171, 1172, -1, -1, 435, 1171, 1172, -1, -1, 41, - -1, 2291, 2292, 2293, 2294, -1, 48, 231, -1, -1, - 451, -1, 453, 454, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, - 11, 73, -1, -1, -1, -1, 1217, -1, 1436, -1, - -1, 1217, -1, -1, -1, -1, -1, -1, -1, 490, - -1, -1, 493, 494, 495, -1, 280, -1, -1, 283, - 41, -1, -1, -1, -1, 289, -1, 48, 1652, -1, - -1, -1, -1, -1, -1, 1659, -1, -1, -1, -1, - 1436, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1693, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 345, -1, -1, 1171, 1172, -1, 1308, -1, -1, - -1, 173, 1308, -1, -1, -1, -1, -1, 702, -1, - -1, 1539, 1726, -1, -1, 8, -1, 189, 11, 1733, - -1, -1, 194, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 143, -1, 1748, -1, -1, -1, 1752, -1, - 1217, 1755, -1, 1757, -1, -1, 400, -1, 41, -1, - -1, -1, -1, 1539, -1, 48, 1584, -1, 230, -1, - -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 427, -1, -1, -1, -1, 189, -1, - 73, 435, -1, 194, -1, -1, 526, -1, -1, -1, - -1, -1, 1806, -1, -1, -1, -1, 451, 1584, 453, - 454, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 285, 808, -1, -1, -1, -1, 230, - -1, -1, -1, -1, -1, 1436, -1, -1, -1, -1, - 1436, 1308, -1, -1, -1, -1, 490, -1, -1, 493, - 494, 495, -1, -1, -1, -1, -1, -1, -1, -1, - 143, -1, -1, -1, 1868, -1, -1, -1, 2578, 1873, - -1, -1, -1, -1, -1, -1, 1880, 1881, 1882, 1883, - -1, 1885, -1, -1, 285, -1, 184, 185, -1, -1, - 173, -1, -1, -1, -1, 1899, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 189, -1, -1, 1913, - -1, 194, -1, -1, 376, -1, -1, -1, -1, -1, - -1, -1, 2632, -1, -1, 1929, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1539, -1, - -1, 1945, 1946, 1539, -1, -1, -1, 230, -1, -1, - 248, 249, 250, 251, 252, 253, -1, -1, 256, 257, - -1, -1, -1, -1, 1968, -1, -1, -1, 1883, 1436, - -1, -1, 702, -1, -1, 376, -1, -1, -1, -1, - -1, -1, -1, 1584, -1, -1, -1, -1, 1584, -1, - -1, 2701, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 985, 285, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 476, -1, -1, 479, 480, 481, - -1, 483, 484, 485, 486, 487, 488, 2737, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2044, -1, -1, -1, -1, -1, -1, -1, 2052, 2053, - 2054, 2055, -1, 2057, 2058, -1, -1, -1, 2062, 2063, - -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, - -1, -1, 1539, -1, 1892, 476, -1, -1, 808, -1, - -1, -1, 483, 484, 485, 486, 487, 488, 2092, -1, - -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2108, -1, 2110, -1, -1, -1, - 2114, 2115, 2116, -1, 2118, -1, 1892, 1584, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2134, -1, 2136, -1, -1, -1, -1, -1, -1, 1957, - -1, -1, -1, -1, -1, 2149, 2150, 2151, 2152, 2153, - 2154, 2155, 2156, 2157, 2158, -1, -1, 1975, 564, 565, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2174, -1, -1, 2177, 472, 473, -1, -1, -1, -1, - -1, 1957, 2000, -1, -1, -1, 2190, 1171, 1172, 2007, - -1, -1, -1, 476, 2198, 2110, -1, -1, -1, 1975, - 483, 484, 485, 486, 487, 488, 2210, -1, -1, -1, - -1, -1, 2030, 2217, -1, -1, -1, -1, -1, 2134, - -1, 627, 628, -1, 2000, -1, -1, -1, -1, -1, - -1, 2007, -1, 1217, 2149, 2150, 2151, 2152, 2153, 2154, - 2155, 2156, 2157, 2158, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2030, 985, -1, -1, -1, -1, - -1, 2265, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2288, -1, -1, 2291, 2292, 2293, - 2294, 1892, -1, -1, 2298, 2299, 1892, 2301, -1, -1, - 2304, -1, -1, -1, 2308, -1, -1, -1, 2312, -1, - -1, -1, -1, -1, 2318, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1308, -1, -1, -1, -1, 2147, - 2334, -1, -1, -1, 2338, -1, -1, -1, -1, 2343, - -1, -1, -1, 2347, -1, -1, -1, -1, -1, -1, - -1, 2355, -1, -1, -1, -1, 1957, 8, -1, -1, - 11, 1957, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2147, -1, -1, 1975, -1, 2380, -1, -1, 1975, - -1, -1, -1, -1, -1, -1, -1, -1, 2206, -1, - 41, -1, -1, -1, -1, -1, -1, 48, -1, 2000, - -1, 807, -1, -1, 2000, -1, 2007, -1, -1, -1, - -1, 2007, -1, -1, -1, -1, -1, -1, 824, -1, - -1, -1, 73, -1, -1, 1892, -1, -1, -1, 2030, - 2206, -1, -1, -1, 2030, -1, -1, -1, -1, -1, - -1, 1171, 1172, -1, -1, 2449, -1, 853, -1, -1, - -1, -1, 1436, -1, -1, 2459, -1, 2275, -1, -1, - -1, -1, -1, -1, -1, 2469, -1, 873, 874, 875, - -1, -1, 878, -1, -1, -1, -1, -1, -1, 8, - -1, -1, 11, -1, -1, -1, -1, 1217, -1, -1, - 1957, -1, 143, -1, -1, 901, -1, -1, -1, 2275, - -1, -1, -1, -1, -1, -1, -1, -1, 1975, 2513, - 2514, -1, 41, 2517, -1, -1, 2520, -1, 2522, 48, - -1, -1, 173, 2527, -1, -1, 2530, -1, 2532, -1, - -1, 2535, -1, 2000, -1, -1, -1, -1, 189, -1, - 2007, -1, -1, 194, 73, 2549, 2147, -1, -1, 955, - -1, 2147, -1, 959, 960, 1539, -1, -1, -1, -1, - -1, -1, -1, 2030, -1, 2569, 2570, 2385, -1, -1, - -1, -1, -1, -1, 2578, -1, -1, -1, 1308, 230, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2415, -1, -1, - 1584, 2605, 2606, -1, 1010, 2206, -1, -1, -1, 2385, - 2206, 1017, 2616, -1, 143, 2619, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2632, -1, - -1, 2635, 1038, -1, 285, -1, -1, 8, -1, 2415, - 11, -1, -1, -1, 173, 16, 17, 18, -1, -1, - 2654, -1, -1, -1, -1, 2570, -1, -1, -1, -1, - 189, -1, -1, 2667, -1, 194, -1, 2485, 2672, -1, - 41, -1, -1, -1, 2275, -1, -1, 48, -1, 2275, - 2147, -1, -1, 2687, -1, -1, -1, -1, 2692, -1, - 2605, 2606, -1, -1, -1, -1, -1, 2701, -1, -1, - -1, 230, 73, -1, 2619, -1, 1436, -1, -1, 2485, - -1, -1, -1, -1, -1, -1, 2720, -1, -1, -1, - 2724, -1, -1, -1, -1, 376, -1, -1, -1, -1, - -1, -1, -1, 2737, -1, -1, -1, -1, -1, 2206, - -1, -1, -1, -1, -1, -1, -1, -1, 1154, -1, - -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, - -1, 2765, -1, -1, -1, -1, -1, -1, -1, -1, - 2774, -1, -1, -1, 2778, -1, -1, 2692, 2782, -1, - -1, -1, -1, -1, 2385, -1, 2604, -1, -1, 2385, - -1, -1, -1, -1, -1, -1, -1, 2801, 2802, 2803, - 2804, -1, 173, -1, -1, 2720, -1, -1, 2275, 1539, - -1, -1, -1, -1, 2415, -1, -1, -1, 189, 2415, - -1, -1, 2640, 194, -1, 476, -1, -1, 2604, -1, - -1, -1, 483, 484, 485, 486, 487, 488, -1, -1, - -1, -1, -1, 2847, -1, 216, 217, 376, -1, -1, - -1, -1, -1, 2671, 1584, 2859, 2674, 2861, 1264, 230, - -1, -1, -1, -1, 2640, -1, 2870, -1, 1274, -1, - 1276, -1, 0, 1279, 1280, 1281, 1282, -1, -1, -1, - 2884, -1, -1, -1, 2485, -1, 2890, -1, -1, 2485, - -1, -1, -1, -1, -1, 2671, -1, 1303, 2674, -1, - 271, -1, -1, 1309, 1310, 1311, 1312, 2911, 1892, -1, - -1, 1317, 1318, -1, 285, -1, 1322, -1, 2385, -1, - 1326, -1, -1, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1336, 1337, -1, -1, 1340, -1, -1, -1, -1, 1345, - -1, -1, 1348, -1, 1350, -1, 1352, 476, 2415, -1, - -1, -1, -1, -1, 483, 484, 485, 486, 487, 488, - -1, -1, -1, -1, -1, 93, -1, -1, -1, 1375, - -1, -1, -1, 1957, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, - -1, 1975, -1, -1, 16, 17, 18, -1, -1, -1, - 1406, 1407, -1, 2604, -1, 376, -1, -1, 2604, -1, - -1, 33, -1, -1, -1, -1, 2000, 145, 2485, 41, - -1, -1, -1, 2007, -1, -1, 48, -1, -1, -1, - 158, -1, -1, -1, -1, 163, -1, -1, -1, 2640, - 168, -1, -1, -1, 2640, -1, 2030, -1, -1, 177, - -1, 73, -1, 181, -1, -1, 2874, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2671, -1, -1, 2674, -1, 2671, -1, 1483, 2674, -1, - 1486, 1487, -1, 1489, 212, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2874, 8, - -1, -1, 11, 231, -1, 476, -1, -1, 479, 480, - 481, -1, 483, 484, 485, 486, 487, 488, 1524, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 41, -1, -1, -1, -1, 2604, -1, 48, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 173, 280, -1, -1, 283, -1, -1, -1, -1, - -1, 289, 1892, 2147, 73, -1, -1, 189, -1, -1, - -1, -1, 194, 2640, -1, -1, 1582, -1, -1, -1, - -1, -1, -1, 1589, -1, -1, -1, -1, 1594, -1, - -1, -1, -1, -1, 216, 217, -1, -1, -1, -1, - -1, -1, -1, -1, 2671, -1, -1, 2674, 230, -1, - -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, - -1, -1, 2206, -1, -1, -1, 1632, 1957, -1, -1, - -1, -1, -1, -1, 143, -1, -1, -1, 1644, -1, - 1646, 1647, -1, -1, -1, 1975, 268, -1, 1654, 271, - -1, -1, 1658, -1, -1, 1661, 894, -1, -1, -1, - -1, -1, -1, 285, 173, -1, 288, -1, -1, -1, - 2000, -1, 400, 2874, -1, -1, -1, 2007, 2874, -1, - 189, -1, -1, -1, -1, 194, -1, -1, -1, 1695, - -1, 2275, 1698, -1, 1700, -1, 934, -1, -1, 427, - 2030, -1, -1, -1, -1, -1, -1, 435, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 230, -1, 451, -1, 453, 454, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 376, -1, 1762, -1, 0, -1, - -1, -1, 490, -1, -1, 493, 494, 495, -1, -1, - -1, -1, -1, 1779, 1780, -1, 285, 19, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, - 32, -1, 1798, -1, -1, -1, -1, -1, -1, -1, - -1, 2385, -1, -1, 1042, 47, -1, 2874, -1, -1, - -1, 1049, -1, -1, 56, 3, -1, 2147, -1, -1, - 8, -1, -1, 11, -1, -1, 68, -1, 16, 17, - 18, 2415, -1, -1, -1, -1, -1, 79, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, 36, 91, - 1856, 93, -1, 41, 476, -1, -1, 479, 480, 481, - 48, 483, 484, 485, 486, 487, 488, 376, -1, 111, - -1, -1, -1, -1, 496, -1, 2206, -1, -1, -1, - -1, -1, -1, 125, -1, 73, -1, -1, -1, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, - -1, 2485, -1, -1, -1, -1, -1, 149, -1, 151, - 152, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 164, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2275, -1, -1, 1954, -1, - -1, 193, -1, -1, -1, -1, -1, 1963, -1, -1, - 1966, -1, -1, 1969, -1, -1, 208, 476, -1, -1, - -1, -1, -1, -1, 483, 484, 485, 486, 487, 488, - -1, -1, -1, 8, -1, 173, 11, -1, -1, 1995, - 1996, 233, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 189, -1, 2009, -1, -1, 194, -1, -1, -1, - -1, -1, 2018, -1, -1, 2021, 41, 2023, -1, -1, - 2604, -1, -1, 48, 1262, 2031, -1, -1, 216, 217, - -1, -1, -1, 2039, 2040, 1273, -1, -1, -1, 1277, - -1, -1, 230, -1, -1, 1283, 1284, 1285, 73, 8, - -1, -1, 11, -1, 1292, 2385, 2640, 16, 17, 18, - -1, -1, 2068, -1, -1, -1, -1, -1, 310, -1, - -1, 313, 2078, -1, 33, -1, -1, 36, -1, -1, - 268, -1, 41, 271, -1, 2415, -1, 2671, 2094, 48, - 2674, -1, -1, -1, -1, -1, -1, 285, -1, 341, - 288, -1, -1, -1, -1, -1, -1, -1, 350, 1347, - -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, - -1, -1, 364, -1, -1, -1, -1, -1, -1, 371, - -1, -1, -1, 375, -1, -1, -1, -1, -1, -1, - -1, 8, -1, 385, 11, -1, -1, -1, 173, 16, - 17, 18, -1, 1391, 396, 2485, -1, -1, 400, -1, - -1, -1, -1, -1, 189, -1, 33, 1405, -1, 194, - -1, -1, 1410, -1, 41, -1, -1, -1, -1, -1, - -1, 48, -1, -1, -1, -1, -1, -1, 376, -1, - -1, -1, -1, -1, 436, -1, -1, -1, -1, 441, - -1, -1, -1, -1, -1, 230, 73, -1, -1, -1, - -1, -1, 454, -1, 173, -1, -1, 2223, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 189, -1, -1, -1, -1, 194, 478, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 492, -1, -1, 495, -1, -1, -1, 216, 217, -1, - 285, -1, -1, 2269, 2270, -1, -1, -1, 2274, -1, - -1, 230, -1, 2279, 2604, -1, 2282, 2283, -1, -1, - -1, 2287, -1, -1, -1, -1, -1, -1, 476, -1, - 2874, 479, 480, 481, -1, 483, 484, 485, 486, 487, - 488, -1, -1, -1, -1, -1, 173, -1, -1, 268, - 2640, -1, 271, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 189, -1, -1, -1, 285, 194, 2334, 288, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2671, -1, -1, 2674, -1, -1, -1, -1, 216, - 217, 376, -1, -1, 1592, -1, -1, -1, -1, -1, - -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, - 2376, -1, -1, 1611, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1628, -1, 1630, 1631, -1, 1633, -1, 1635, -1, -1, - -1, 268, 1640, -1, 271, 1643, -1, -1, -1, -1, - 1648, -1, -1, 1651, -1, -1, -1, 376, 285, -1, - -1, 288, -1, -1, -1, 1663, -1, -1, -1, 1667, - 1668, 1669, 1670, -1, -1, -1, -1, -1, 1676, 1677, - -1, 1679, 1680, -1, -1, -1, -1, -1, -1, -1, - -1, 476, -1, 1691, -1, -1, 1694, -1, 483, 484, - 485, 486, 487, 488, 1702, 1703, 1704, 1705, 1706, 1707, - 1708, 1709, 1710, 1711, -1, -1, -1, -1, -1, -1, - -1, 1719, -1, 2489, -1, 1723, -1, -1, -1, -1, - -1, 2497, 2498, -1, -1, 2501, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1745, -1, 376, - -1, -1, -1, -1, -1, -1, -1, 476, -1, -1, - 479, 480, 481, -1, 483, 484, 485, 486, 487, 488, - -1, 2537, 2538, -1, 493, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2874, 2551, 21, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8, -1, 74, - 11, -1, -1, -1, -1, 16, 17, 18, -1, 476, - -1, -1, 479, 480, 481, 90, 483, 484, 485, 486, - 487, 488, 33, 1861, 1862, 1863, 493, -1, -1, -1, - 41, -1, -1, -1, -1, -1, -1, 48, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2663, 8, -1, - -1, 11, 73, 1901, -1, -1, 16, 17, 18, 144, - -1, -1, 2678, -1, -1, -1, -1, -1, 153, -1, - -1, -1, -1, 33, -1, -1, -1, 2693, -1, -1, - 165, 41, -1, -1, -1, 170, -1, -1, 48, -1, - -1, -1, 2708, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1953, -1, -1, -1, -1, - -1, 1959, 197, 73, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1972, 1973, 1974, -1, 1976, 1977, - 1978, 1979, -1, -1, 1982, 1983, 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, - -1, -1, 173, -1, -1, -1, 241, -1, -1, -1, - 245, -1, 2010, -1, -1, 2013, -1, 2015, 189, -1, - -1, 2019, 2020, 194, 2790, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2033, 2034, 2035, 2036, -1, - 2038, -1, -1, -1, -1, 216, 217, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2822, -1, -1, 230, - -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 308, -1, -1, 2842, 2843, -1, 189, - -1, -1, -1, -1, 194, -1, -1, 322, -1, -1, - 2856, -1, -1, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, -1, -1, 216, 217, -1, -1, - -1, -1, -1, 2111, 285, -1, -1, 288, -1, 354, - 230, -1, 357, -1, -1, -1, 2892, -1, -1, -1, - 365, -1, -1, 368, -1, -1, -1, 8, -1, -1, - 11, -1, -1, -1, -1, 16, 17, 18, -1, -1, - -1, -1, 387, -1, -1, -1, -1, -1, 268, -1, - -1, 271, 33, -1, -1, 400, -1, -1, -1, -1, - 41, -1, 407, -1, -1, 285, -1, 48, 288, -1, - -1, 416, -1, -1, -1, -1, -1, 422, -1, -1, - -1, -1, 2958, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 73, -1, -1, 376, -1, -1, -1, -1, - -1, -1, 447, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2224, -1, -1, -1, - 2228, 2229, -1, 2231, -1, -1, 2234, 2235, 2236, 2237, - -1, -1, -1, 2241, 2242, 2243, 2244, 2245, 2246, 2247, - 2248, 2249, 2250, 2251, 2252, -1, -1, -1, -1, 8, - -1, -1, 11, -1, 2262, -1, 376, 16, 17, 18, - 2268, -1, -1, 2271, -1, 2273, -1, -1, -1, 2277, - -1, -1, 2280, 2281, 33, -1, 2284, 2285, -1, -1, - -1, -1, 41, -1, -1, -1, -1, -1, -1, 48, - -1, -1, 173, -1, -1, 476, -1, -1, 479, 480, - 481, -1, 483, 484, 485, 486, 487, 488, 189, -1, - -1, -1, 493, 194, 73, -1, -1, 2325, -1, -1, - -1, -1, -1, -1, -1, 2333, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 216, 217, 23, 2346, -1, - -1, -1, -1, 29, -1, -1, -1, -1, -1, 230, - 36, -1, -1, -1, -1, -1, 476, -1, -1, 479, - 480, 481, -1, 483, 484, 485, 486, 487, 488, 55, - -1, -1, -1, 493, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, - 271, -1, -1, -1, -1, -1, 23, -1, -1, -1, - -1, -1, 29, -1, 285, -1, -1, 288, -1, 36, - -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, - 106, -1, -1, -1, -1, -1, -1, -1, 55, -1, - 189, -1, -1, -1, -1, 194, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, -1, 216, 217, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2478, 230, -1, -1, 2482, -1, -1, -1, -1, 106, - -1, -1, -1, 2491, 2492, 2493, -1, -1, 2496, -1, - -1, 2499, 2500, -1, -1, 376, 2504, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 135, 268, - 196, -1, 271, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 285, -1, -1, 288, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 246, -1, -1, 2571, -1, -1, -1, -1, 254, 196, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 266, -1, 2590, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 476, -1, -1, 479, 480, - 481, 287, 483, 484, 485, 486, 487, 488, -1, -1, - -1, 297, 493, -1, -1, -1, -1, 376, -1, 246, - -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, - 2638, 2639, -1, -1, -1, -1, 2644, 2645, 2646, 266, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 337, -1, -1, -1, 341, -1, 343, -1, -1, - 287, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 297, -1, -1, -1, -1, -1, -1, 2685, 2686, 365, - -1, -1, -1, -1, -1, 371, -1, -1, -1, -1, - -1, 2699, -1, -1, -1, -1, -1, -1, -1, 385, - -1, -1, -1, 2711, -1, -1, -1, -1, -1, -1, - 337, -1, -1, -1, 341, -1, 343, 476, -1, -1, - 479, 480, 481, -1, 483, 484, 485, 486, 487, 488, - -1, -1, -1, -1, 493, -1, -1, -1, 365, -1, - -1, -1, -1, -1, 371, -1, -1, -1, -1, -1, - -1, 2759, 438, -1, -1, -1, -1, -1, 385, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2777, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2799, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2813, -1, -1, -1, -1, - -1, 438, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, - -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 2881, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 2895, 68, 69, - 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - 130, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, - 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, - 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, 402, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, 434, -1, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, -1, -1, -1, - -1, -1, -1, 483, 484, 485, -1, -1, -1, -1, - 490, -1, 492, 493, -1, -1, -1, 497, -1, 499, - 500, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, - -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, - 72, -1, 74, -1, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, - 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, - 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, - 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, - 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, 445, 446, 447, 448, 449, -1, -1, - 452, -1, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, -1, 478, -1, -1, -1, - -1, 483, 484, -1, -1, -1, -1, -1, 490, -1, - 492, 493, -1, -1, -1, 497, -1, 499, 500, 3, - 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, - 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, - -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, - 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, - -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, - 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, - 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, - 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, - 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, - -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, - -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - 434, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, 445, 446, 447, 448, 449, -1, -1, 452, -1, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, -1, 478, -1, -1, -1, -1, 483, - 484, -1, -1, -1, -1, -1, 490, -1, 492, -1, - -1, -1, -1, 497, -1, 499, 500, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, 28, 29, 30, -1, -1, -1, -1, 35, - -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, -1, 74, -1, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, - 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, - 166, 167, 168, 169, 170, 171, 172, 173, 174, -1, - 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, - 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, -1, - 226, 227, 228, 229, 230, -1, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, - 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, 402, 403, 404, 405, - 406, 407, -1, 409, 410, -1, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, 434, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, 445, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, + 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 736, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, + 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, -1, -1, -1, -1, -1, -1, 483, 484, -1, - -1, -1, -1, -1, 490, -1, 492, -1, -1, -1, - -1, 497, -1, 499, 500, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, -1, -1, -1, 34, 35, -1, -1, - 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, 74, -1, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, 167, - -1, 169, 170, 171, 172, 173, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, - 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, 402, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, 434, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, 445, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, -1, - -1, -1, -1, -1, -1, 483, 484, -1, -1, -1, - -1, -1, 490, -1, 492, -1, -1, -1, -1, 497, - -1, 499, 500, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, - -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, - 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, - 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, 402, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, 434, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, 445, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, -1, -1, -1, - -1, -1, -1, 483, 484, 485, -1, -1, -1, -1, - 490, -1, 492, -1, -1, -1, -1, 497, -1, 499, - 500, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, - -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, - 72, -1, 74, -1, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, - 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, - 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, - 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, - 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - 402, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, 445, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, + 370, 371, 568, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, + 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, + 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, + 415, 416, 417, 0, 570, 419, 0, 0, 420, 421, + 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, + 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, + 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, -1, -1, -1, -1, -1, - -1, 483, 484, -1, -1, -1, -1, -1, 490, -1, - 492, -1, -1, -1, -1, 497, -1, 499, 500, 3, - 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, - 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, - -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, - 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, - -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, - 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, - 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, - 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, - 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, - -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, - -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, 402, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - 434, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, 445, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, -1, -1, -1, -1, -1, -1, 483, - 484, -1, -1, -1, -1, -1, 490, -1, 492, 493, - -1, -1, -1, 497, -1, 499, 500, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, 28, 29, 30, -1, -1, -1, -1, 35, - -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, -1, 74, -1, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, - 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, - 166, 167, -1, 169, 170, 171, 172, 173, 174, -1, - 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, - 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, -1, - -1, 227, 228, 229, 230, -1, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, - 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, 402, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, 434, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, 445, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, -1, -1, -1, -1, -1, -1, 483, 484, -1, - -1, -1, -1, -1, 490, -1, 492, 493, -1, -1, - -1, 497, -1, 499, 500, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, 35, -1, -1, - 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, 74, -1, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, 167, - -1, 169, 170, 171, 172, 173, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, - 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, 402, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, 434, -1, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, + 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 0, 0, 0, 0, 1423, 0, 104, 105, 0, 106, + 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, + 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, + 124, 125, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 0, 0, 0, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, + 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, + 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, + 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, + 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, + 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, + 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, + 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, + 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, + 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, + 339, 0, 340, 341, 342, 343, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, + 0, 385, 386, 387, 388, 0, 390, 391, 392, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, + 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, + 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, + 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, -1, - -1, -1, -1, -1, -1, 483, 484, -1, -1, -1, - -1, -1, 490, -1, 492, -1, -1, -1, -1, 497, - -1, 499, 500, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, - -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, 167, 168, 169, - 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, - 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 468, 469, 470, 471, 472, 498, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 0, 110, 111, 112, + 113, 114, 0, 116, 117, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 126, 127, 128, 0, + 129, 130, 131, 132, 133, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 0, 152, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 180, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, + 0, 200, 201, 202, 203, 0, 204, 0, 205, 0, + 0, 0, 208, 209, 210, 0, 212, 0, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 221, 1510, + 223, 0, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 0, 245, 0, 246, 0, 0, + 249, 0, 251, 252, 253, 254, 255, 0, 0, 256, + 0, 258, 0, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, + 0, 294, 295, 0, 297, 0, 298, 299, 300, 301, + 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, + 0, 0, 309, 310, 0, 312, 0, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 343, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 0, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 385, 386, 387, 388, 0, + 390, 391, 392, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 502, 406, 407, 408, + 0, 409, 410, 0, 411, 0, 413, 414, 415, 416, + 417, 0, 418, 419, 0, 0, 420, 421, 422, 423, + 424, 0, 425, 426, 427, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 443, 444, 0, 445, 0, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 498, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 106, 107, 108, + 0, 110, 111, 112, 113, 114, 0, 116, 117, 0, + 118, 119, 120, 121, 122, 123, 0, 0, 124, 125, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 150, 0, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 0, 166, 0, 167, 168, 169, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 180, 181, 182, 0, 183, 184, 185, 0, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 0, 199, 0, 200, 201, 202, 203, 0, + 204, 0, 205, 0, 0, 0, 208, 209, 210, 0, + 212, 0, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 1800, 223, 0, 225, 226, 227, 228, + 0, 229, 230, 231, 232, 233, 234, 0, 235, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 0, 245, + 0, 246, 0, 0, 249, 0, 251, 252, 253, 254, + 255, 0, 0, 256, 0, 258, 0, 0, 260, 261, + 262, 0, 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, 402, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, 434, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, 445, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 289, + 290, 291, 292, 293, 0, 294, 295, 0, 297, 0, + 298, 299, 300, 301, 302, 303, 0, 304, 305, 0, + 0, 306, 307, 308, 0, 0, 309, 310, 0, 312, + 0, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 334, 335, 336, 337, 338, 339, 0, + 340, 341, 342, 343, 344, 345, 346, 347, 0, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 0, 361, 362, 0, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 0, 379, 380, 381, 382, 383, 0, 384, 385, + 386, 387, 388, 0, 390, 391, 392, 393, 0, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 502, 406, 407, 408, 0, 409, 410, 0, 411, 0, + 413, 414, 415, 416, 417, 0, 418, 419, 0, 0, + 420, 421, 422, 423, 424, 0, 425, 426, 427, 428, + 429, 430, 431, 432, 0, 0, 433, 434, 435, 436, + 437, 0, 0, 438, 439, 440, 441, 442, 443, 444, + 0, 445, 0, 447, 448, 449, 450, 0, 0, 451, + 0, 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, -1, -1, -1, - -1, -1, -1, 483, 484, -1, -1, -1, -1, -1, - 490, -1, 492, -1, -1, -1, -1, 497, -1, 499, - 500, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, - -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, - 72, -1, 74, -1, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, - 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, - 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, - 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, - 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, - 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - 402, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, 445, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, + 470, 471, 472, 498, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 0, 110, 111, 112, 113, 114, + 0, 116, 117, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 180, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 199, 0, 200, + 201, 202, 203, 0, 204, 0, 205, 0, 0, 0, + 208, 209, 210, 0, 212, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 1812, 223, 0, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 0, 245, 0, 246, 0, 0, 249, 0, + 251, 252, 253, 254, 255, 0, 0, 256, 0, 258, + 0, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 500, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 0, 289, 290, 291, 292, 293, 0, 294, + 295, 0, 297, 0, 298, 299, 300, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 310, 0, 312, 0, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 0, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 385, 386, 387, 388, 0, 390, 391, + 392, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 502, 406, 407, 408, 0, 409, + 410, 0, 411, 0, 413, 414, 415, 416, 417, 0, + 418, 419, 0, 0, 420, 421, 422, 423, 424, 0, + 425, 426, 427, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 443, 444, 0, 445, 0, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 498, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 106, 107, 108, 0, 110, + 111, 112, 113, 114, 0, 116, 117, 0, 118, 119, + 120, 121, 122, 123, 0, 0, 124, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 0, 0, 152, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, + 166, 0, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 0, 0, 178, 179, 180, 181, + 182, 0, 183, 184, 185, 0, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 199, 0, 200, 201, 202, 203, 0, 204, 0, + 205, 0, 0, 0, 208, 209, 210, 0, 212, 0, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 1814, 223, 0, 225, 226, 227, 228, 0, 229, + 230, 231, 232, 233, 234, 0, 235, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 0, 245, 0, 246, + 0, 0, 249, 0, 251, 252, 253, 254, 255, 0, + 0, 256, 0, 258, 0, 0, 260, 261, 262, 0, + 0, 263, 264, 265, 266, 267, 500, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 289, 290, 291, + 292, 293, 0, 294, 295, 0, 297, 0, 298, 299, + 300, 301, 302, 303, 0, 304, 305, 0, 0, 306, + 307, 308, 0, 0, 309, 310, 0, 312, 0, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 0, 334, 335, 336, 337, 338, 339, 0, 340, 341, + 342, 343, 344, 345, 346, 347, 0, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 0, 361, 362, 0, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, + 379, 380, 381, 382, 383, 0, 384, 385, 386, 387, + 388, 0, 390, 391, 392, 393, 0, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 502, 406, + 407, 408, 0, 409, 410, 0, 411, 0, 413, 414, + 415, 416, 417, 0, 418, 419, 0, 0, 420, 421, + 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 0, 0, 433, 434, 435, 436, 437, 0, + 0, 438, 439, 440, 441, 442, 443, 444, 0, 445, + 0, 447, 448, 449, 450, 0, 0, 451, 0, 0, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, -1, -1, -1, -1, -1, - -1, 483, 484, -1, -1, -1, -1, -1, 490, -1, - 492, -1, -1, -1, -1, 497, -1, 499, 500, 3, - 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, - 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, - -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, - 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, - -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, - 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, - 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, - 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, - 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, - -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, - -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, -1, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, 402, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - 434, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, 445, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, -1, -1, -1, -1, -1, -1, 483, - 484, -1, -1, -1, -1, -1, 490, -1, 492, -1, - -1, -1, -1, 497, -1, 499, 500, 3, 4, 5, + 472, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 106, + 107, 108, 0, 110, 111, 112, 113, 114, 0, 116, + 117, 0, 118, 119, 120, 121, 122, 123, 0, 0, + 124, 125, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 0, 0, 0, 135, 136, 137, 138, 139, 140, + 0, 142, 143, 144, 0, 145, 146, 147, 148, 149, + 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 0, 166, 0, 167, 168, 169, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 180, 181, 182, 0, 183, 184, 185, 0, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 0, 199, 0, 200, 201, 202, + 203, 0, 204, 0, 205, 0, 0, 0, 208, 209, + 210, 0, 212, 0, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, + 227, 228, 0, 229, 230, 231, 232, 233, 234, 0, + 235, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 0, 245, 0, 246, 0, 0, 249, 0, 251, 252, + 253, 254, 255, 0, 0, 256, 0, 258, 0, 0, + 260, 261, 262, 0, 0, 263, 264, 265, 266, 267, + 500, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 289, 290, 291, 292, 293, 0, 294, 295, 0, + 297, 0, 298, 299, 300, 301, 302, 303, 0, 304, + 305, 0, 0, 306, 307, 308, 0, 0, 309, 310, + 0, 312, 0, 314, 315, 316, 317, 318, 319, 320, + 0, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 0, 334, 335, 336, 337, 338, + 339, 0, 340, 0, 342, 343, 344, 345, 346, 347, + 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 0, 361, 362, 0, 364, 365, + 366, 367, 0, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 0, 379, 380, 381, 382, 383, 0, + 384, 385, 386, 387, 388, 0, 390, 391, 392, 393, + 0, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 502, 406, 407, 408, 0, 409, 410, 0, + 411, 0, 413, 414, 415, 416, 417, 0, 418, 419, + 0, 0, 420, 421, 422, 423, 424, 0, 425, 426, + 427, 428, 429, 430, 431, 432, 0, 0, 433, 434, + 435, 436, 437, 0, 0, 438, 439, 440, 441, 442, + 443, 444, 0, 445, 0, 447, 448, 449, 450, 0, + 0, 451, 0, 0, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 661, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 106, 107, 108, 662, 110, 111, 112, + 0, 663, 664, 665, 666, 0, 118, 119, 120, 121, + 122, 123, 0, 0, 124, 125, 667, 668, 128, 0, + 129, 130, 131, 132, 0, 0, 669, 0, 135, 136, + 137, 138, 139, 140, 670, 142, 143, 144, 0, 145, + 146, 147, 148, 149, 150, 0, 671, 152, 153, 154, + 0, 0, 0, 672, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 673, 674, 165, 0, 166, 0, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 0, 0, 178, 179, 675, 181, 182, 0, + 183, 184, 185, 0, 186, 187, 188, 0, 189, 190, + 191, 192, 0, 194, 195, 196, 197, 0, 0, 199, + 0, 200, 201, 676, 203, 0, 204, 0, 205, 677, + 0, 678, 208, 209, 210, 679, 212, 0, 213, 0, + 0, 0, 216, 0, 217, 218, 219, 220, 221, 680, + 223, 681, 225, 226, 227, 228, 0, 229, 230, 231, + 232, 233, 234, 0, 235, 682, 0, 238, 239, 240, + 241, 242, 683, 684, 0, 685, 0, 246, 686, 687, + 249, 688, 251, 252, 253, 254, 255, 0, 0, 256, + 689, 258, 690, 0, 260, 261, 262, 0, 0, 263, + 264, 265, 266, 267, 691, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 692, 693, 694, 290, 291, 292, 0, + 0, 294, 295, 695, 297, 0, 0, 299, 696, 301, + 302, 303, 0, 304, 305, 0, 0, 306, 307, 308, + 0, 0, 309, 0, 697, 312, 698, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 0, 328, 329, 0, 331, 332, 333, 0, 334, + 335, 336, 337, 338, 339, 0, 340, 341, 342, 699, + 344, 345, 346, 347, 0, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 361, + 362, 700, 364, 365, 366, 701, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, + 381, 382, 383, 0, 384, 702, 386, 387, 388, 703, + 390, 391, 704, 393, 0, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 705, 406, 0, 408, + 0, 409, 410, 0, 411, 706, 413, 414, 415, 416, + 417, 0, 707, 708, 0, 0, 420, 421, 0, 423, + 0, 0, 425, 426, 709, 428, 429, 430, 431, 432, + 0, 0, 433, 434, 435, 436, 437, 0, 0, 438, + 439, 440, 441, 442, 0, 710, 0, 445, 711, 447, + 448, 449, 450, 0, 0, 451, 0, 0, 452, 453, + 454, 455, 456, 457, 661, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 469, 470, 471, 472, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 106, 107, 108, 662, 110, 111, 112, 0, + 663, 664, 665, 666, 0, 118, 119, 120, 121, 122, + 123, 0, 0, 124, 125, 667, 668, 128, 0, 129, + 130, 131, 132, 0, 0, 669, 0, 135, 136, 137, + 138, 139, 140, 670, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 0, 671, 152, 153, 154, 0, + 0, 0, 672, 0, 0, 0, 156, 157, 158, 159, + 160, 161, 162, 673, 674, 165, 0, 166, 0, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 675, 181, 182, 0, 183, + 184, 185, 0, 186, 187, 188, 0, 189, 190, 191, + 192, 0, 194, 195, 196, 197, 0, 0, 199, 0, + 200, 201, 676, 203, 0, 204, 0, 205, 677, 0, + 678, 208, 209, 210, 679, 212, 0, 213, 0, 0, + 0, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 681, 225, 226, 227, 228, 0, 229, 230, 231, 232, + 233, 234, 0, 235, 682, 0, 238, 239, 240, 241, + 242, 683, 684, 0, 685, 0, 246, 686, 687, 249, + 688, 251, 252, 253, 254, 255, 0, 0, 256, 689, + 258, 690, 0, 260, 261, 262, 0, 0, 263, 264, + 265, 266, 267, 691, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 692, 693, 694, 290, 291, 292, 0, 0, + 294, 295, 695, 297, 0, 0, 299, 696, 301, 302, + 303, 0, 304, 305, 0, 0, 306, 307, 308, 0, + 0, 309, 0, 697, 312, 698, 0, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 0, 328, 329, 0, 331, 332, 333, 0, 334, 335, + 336, 337, 338, 339, 0, 340, 341, 342, 699, 344, + 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 0, 361, 362, + 700, 364, 365, 366, 701, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, + 382, 383, 0, 384, 702, 386, 387, 388, 703, 390, + 391, 704, 393, 0, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 705, 406, 0, 408, 0, + 409, 410, 0, 411, 706, 413, 414, 415, 416, 417, + 0, 707, 708, 0, 0, 420, 421, 0, 423, 0, + 0, 425, 426, 709, 428, 429, 430, 431, 432, 0, + 0, 433, 434, 435, 436, 437, 0, 0, 438, 439, + 440, 441, 442, 0, 710, 0, 445, 711, 447, 448, + 449, 450, 0, 0, 451, 0, 0, 452, 453, 454, + 455, 456, 457, 2390, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 469, 470, 471, 472, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 106, 107, 108, 2391, 110, 111, 112, 0, 663, + 2392, 665, 666, 0, 118, 119, 120, 121, 122, 123, + 0, 0, 124, 125, 667, 668, 128, 0, 129, 130, + 131, 132, 0, 0, 2393, 0, 135, 136, 137, 138, + 139, 140, 2394, 142, 143, 144, 0, 145, 146, 147, + 148, 149, 150, 0, 2395, 152, 153, 154, 0, 0, + 0, 2396, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 673, 674, 165, 0, 166, 0, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 0, 0, 178, 179, 675, 181, 182, 0, 183, 184, + 185, 0, 186, 187, 188, 0, 189, 190, 191, 192, + 0, 194, 195, 196, 197, 0, 0, 199, 0, 200, + 201, 676, 203, 0, 204, 0, 205, 2397, 0, 2398, + 208, 209, 210, 2399, 212, 0, 213, 0, 0, 0, + 216, 0, 217, 218, 219, 220, 221, 222, 223, 2400, + 225, 226, 227, 228, 0, 229, 230, 231, 232, 233, + 234, 0, 235, 2401, 0, 238, 239, 240, 241, 242, + 683, 684, 0, 685, 0, 246, 2402, 2403, 249, 2404, + 251, 252, 253, 254, 255, 0, 0, 256, 2405, 258, + 2406, 0, 260, 261, 262, 0, 0, 263, 264, 265, + 266, 267, 2601, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 692, 2408, 694, 290, 291, 292, 0, 0, 294, + 295, 2410, 297, 0, 0, 299, 696, 301, 302, 303, + 0, 304, 305, 0, 0, 306, 307, 308, 0, 0, + 309, 0, 2412, 312, 2413, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 0, + 328, 329, 0, 331, 332, 333, 0, 334, 335, 336, + 337, 338, 339, 0, 340, 341, 342, 699, 344, 345, + 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 0, 361, 362, 2414, + 364, 365, 366, 0, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, + 383, 0, 384, 0, 386, 387, 388, 2416, 390, 391, + 704, 393, 0, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 2602, 406, 0, 408, 0, 409, + 410, 0, 411, 2418, 413, 414, 415, 416, 417, 0, + 707, 708, 0, 0, 420, 421, 0, 423, 0, 0, + 425, 426, 2419, 428, 429, 430, 431, 432, 0, 0, + 433, 434, 435, 436, 437, 0, 0, 438, 439, 440, + 441, 442, 0, 710, 0, 445, 2420, 447, 448, 449, + 450, 0, 0, 451, 0, 0, 452, 453, 454, 455, + 456, 457, 661, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 469, 470, 471, 472, 0, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 101, 102, 103, + 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, + 106, 107, 108, 662, 110, 111, 112, 0, 663, 664, + 665, 666, 0, 118, 119, 120, 121, 122, 123, 0, + 0, 124, 125, 667, 668, 128, 0, 129, 130, 131, + 132, 0, 0, 669, 0, 135, 136, 137, 138, 139, + 140, 670, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 150, 0, 671, 152, 153, 154, 0, 0, 0, + 672, 0, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 673, 674, 165, 0, 166, 0, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 675, 181, 182, 0, 183, 184, 185, + 0, 186, 187, 188, 0, 189, 190, 191, 192, 0, + 194, 195, 196, 197, 0, 0, 199, 0, 200, 201, + 676, 203, 0, 204, 0, 205, 677, 0, 678, 208, + 209, 210, 679, 212, 0, 213, 0, 0, 0, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 681, 225, + 226, 227, 228, 0, 229, 230, 231, 232, 233, 234, + 0, 235, 682, 0, 238, 239, 240, 241, 242, 683, + 684, 0, 685, 0, 246, 686, 687, 249, 688, 251, + 252, 253, 254, 255, 0, 0, 256, 689, 258, 690, + 0, 260, 261, 262, 0, 0, 263, 264, 265, 266, + 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 692, 693, 694, 290, 291, 292, 0, 0, 294, 295, + 695, 297, 0, 0, 299, 696, 301, 302, 303, 0, + 304, 305, 0, 0, 306, 307, 308, 0, 0, 309, + 0, 697, 312, 698, 0, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 0, 328, + 329, 0, 331, 332, 333, 0, 334, 335, 336, 337, + 338, 339, 0, 340, 341, 342, 699, 344, 345, 346, + 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 0, 361, 362, 700, 364, + 365, 366, 0, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 0, 379, 380, 381, 382, 383, + 0, 384, 0, 386, 387, 388, 703, 390, 391, 704, + 393, 0, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 0, 406, 0, 408, 0, 409, 410, + 0, 411, 706, 413, 414, 415, 416, 417, 0, 707, + 708, 0, 0, 420, 421, 0, 423, 0, 0, 425, + 426, 709, 428, 429, 430, 431, 432, 0, 0, 433, + 434, 435, 436, 437, 0, 0, 438, 439, 440, 441, + 442, 0, 710, 0, 445, 711, 447, 448, 449, 450, + 0, 0, 451, 0, 0, 452, 453, 454, 455, 456, + 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 469, 470, 471, 472 +}; + +static const yytype_int16 yycheck[] = +{ + 6, 36, 607, 637, 529, 999, 6, 0, 46, 565, + 492, 622, 799, 526, 702, 535, 631, 997, 799, 806, + 583, 799, 0, 16, 972, 879, 708, 731, 0, 1276, + 734, 1173, 0, 881, 533, 16, 0, 1229, 1142, 1142, + 977, 1810, 1738, 629, 1142, 1142, 528, 6, 1816, 897, + 1818, 31, 30, 2146, 526, 944, 2081, 2146, 2175, 0, + 1178, 909, 1038, 1305, 1306, 974, 534, 1807, 2176, 1734, + 535, 2189, 48, 1694, 1854, 1855, 1856, 2058, 1792, 21, + 35, 2196, 1257, 48, 807, 667, 668, 526, 2010, 0, + 5, 5, 5, 1002, 72, 537, 5, 50, 13, 14, + 5, 5, 5, 5, 2064, 9, 893, 9, 5, 89, + 13, 14, 694, 73, 5, 9, 13, 14, 1783, 11, + 5, 5, 13, 14, 58, 58, 58, 5, 13, 14, + 917, 2465, 919, 920, 1143, 9, 13, 14, 5, 917, + 5, 1401, 11, 642, 0, 1885, 622, 5, 624, 41, + 626, 5, 2468, 5, 5, 5, 27, 5, 168, 5, + 169, 67, 1403, 34, 2514, 94, 67, 117, 107, 4, + 3, 4, 5, 2448, 9, 604, 9, 58, 40, 40, + 604, 73, 93, 214, 866, 1271, 15, 11, 27, 137, + 27, 145, 122, 1271, 1358, 34, 1271, 34, 240, 986, + 11, 2551, 989, 990, 2605, 48, 1946, 1947, 986, 115, + 3, 989, 990, 283, 240, 2104, 2622, 41, 1278, 2697, + 281, 2063, 4, 2378, 168, 289, 1271, 9, 2737, 220, + 702, 2426, 269, 169, 158, 27, 289, 93, 31, 32, + 169, 2536, 1998, 11, 826, 827, 305, 120, 168, 73, + 75, 115, 120, 305, 13, 14, 27, 75, 212, 2559, + 365, 86, 220, 702, 165, 160, 172, 365, 86, 107, + 852, 37, 2622, 41, 203, 266, 11, 160, 272, 799, + 2580, 68, 115, 2896, 59, 436, 806, 1010, 2870, 2871, + 219, 2071, 67, 115, 1017, 354, 401, 985, 188, 228, + 455, 30, 325, 401, 436, 73, 588, 231, 266, 924, + 2626, 374, 24, 20, 21, 344, 358, 11, 30, 882, + 31, 32, 2415, 2119, 479, 54, 2835, 414, 2309, 1389, + 173, 354, 2313, 262, 802, 289, 808, 442, 130, 207, + 2300, 224, 493, 372, 442, 2462, 189, 910, 1969, 2118, + 2963, 194, 2460, 452, 283, 108, 280, 455, 124, 130, + 72, 493, 268, 117, 186, 301, 2948, 273, 326, 808, + 265, 458, 283, 936, 167, 2115, 169, 2117, 2673, 73, + 213, 479, 93, 1170, 375, 379, 2182, 230, 493, 2867, + 432, 2056, 482, 2058, 1181, 493, 1183, 434, 497, 919, + 920, 234, 2736, 493, 163, 1192, 432, 162, 2603, 273, + 316, 345, 345, 345, 939, 316, 2766, 375, 2718, 2574, + 349, 208, 1209, 493, 2933, 1148, 332, 283, 266, 488, + 493, 8, 493, 497, 11, 346, 488, 120, 1043, 16, + 17, 18, 378, 434, 497, 917, 268, 1694, 23, 1236, + 1237, 493, 135, 343, 29, 2805, 738, 2299, 2733, 234, + 58, 1547, 401, 2352, 345, 294, 497, 493, 412, 1547, + 1548, 1549, 1547, 1548, 428, 2876, 434, 2233, 2218, 0, + 1428, 1268, 1269, 2889, 493, 1272, 1273, 497, 438, 482, + 346, 933, 412, 1729, 1730, 16, 2614, 1757, 1740, 1508, + 535, 1546, 2836, 451, 482, 1752, 436, 436, 1484, 30, + 482, 382, 2605, 985, 482, 36, 2605, 1758, 482, 273, + 526, 2837, 1156, 429, 389, 390, 1520, 48, 429, 535, + 436, 491, 445, 962, 377, 495, 398, 398, 962, 2889, + 493, 534, 2523, 382, 455, 382, 985, 2528, 457, 108, + 2531, 72, 457, 2848, 535, 2515, 311, 1143, 564, 565, + 135, 434, 482, 497, 497, 497, 434, 353, 2490, 607, + 479, 1631, 1632, 1748, 479, 495, 1636, 491, 493, 493, + 493, 495, 588, 494, 493, 496, 2355, 412, 493, 493, + 493, 493, 1174, 1175, 412, 877, 493, 489, 492, 455, + 2368, 577, 493, 545, 597, 586, 493, 1583, 493, 493, + 484, 485, 577, 1400, 1401, 493, 493, 1677, 1678, 597, + 489, 627, 628, 629, 2742, 597, 493, 2735, 2743, 597, + 1353, 1795, 315, 597, 589, 493, 2350, 617, 494, 493, + 496, 493, 493, 493, 2309, 493, 1261, 493, 2313, 484, + 485, 484, 485, 446, 365, 130, 597, 64, 65, 1172, + 130, 1247, 486, 487, 488, 489, 330, 2447, 266, 2803, + 1457, 118, 457, 455, 1187, 486, 487, 488, 489, 1457, + 1467, 93, 964, 1470, 106, 1300, 1301, 2668, 118, 1467, + 401, 158, 1470, 147, 479, 1887, 702, 479, 1223, 1971, + 1172, 1173, 484, 485, 23, 174, 117, 493, 285, 4, + 2450, 1231, 287, 2334, 9, 1187, 484, 485, 486, 487, + 488, 489, 1969, 400, 496, 83, 2834, 1999, 1314, 1292, + 1345, 442, 738, 1172, 1173, 446, 0, 401, 1220, 1221, + 1355, 195, 1357, 190, 455, 1227, 482, 345, 1187, 484, + 485, 486, 487, 488, 489, 1542, 1543, 446, 435, 495, + 190, 11, 1230, 338, 231, 234, 1231, 342, 479, 127, + 1356, 2888, 158, 4, 372, 268, 2018, 163, 9, 1566, + 273, 2915, 493, 2876, 448, 1566, 340, 2876, 1566, 1907, + 201, 41, 2561, 799, 1581, 1913, 1309, 372, 268, 497, + 806, 807, 808, 278, 197, 457, 1660, 493, 278, 802, + 1658, 2047, 2048, 2049, 2050, 75, 135, 240, 824, 75, + 405, 197, 407, 73, 246, 1529, 86, 479, 4, 158, + 86, 324, 254, 9, 163, 1317, 543, 1309, 545, 546, + 1834, 493, 1453, 878, 247, 231, 1550, 853, 1552, 2514, + 417, 1555, 491, 1742, 2962, 266, 495, 268, 2523, 1445, + 457, 568, 494, 2528, 439, 497, 2531, 873, 874, 875, + 1309, 877, 878, 488, 491, 1480, 1481, 1482, 495, 23, + 495, 1857, 479, 488, 1166, 29, 2551, 184, 185, 2031, + 495, 2916, 2917, 4, 280, 901, 493, 36, 9, 2146, + 23, 448, 231, 480, 481, 482, 29, 484, 485, 486, + 487, 488, 489, 919, 920, 361, 55, 1977, 1978, 1979, + 1980, 1434, 1508, 1983, 1984, 1985, 1986, 1987, 1988, 1989, + 1990, 1991, 1992, 1842, 2703, 358, 405, 405, 407, 407, + 2708, 2966, 300, 949, 493, 1793, 494, 953, 954, 497, + 1426, 280, 1739, 365, 5, 252, 253, 2622, 964, 1896, + 493, 482, 1434, 432, 1901, 358, 476, 106, 287, 1756, + 1757, 947, 948, 366, 950, 2035, 2036, 1453, 1260, 985, + 1262, 1463, 947, 948, 1266, 950, 1468, 967, 218, 401, + 494, 135, 169, 497, 495, 1434, 1472, 1279, 1280, 283, + 1282, 1477, 1501, 2668, 1010, 13, 14, 674, 401, 432, + 476, 1017, 135, 534, 535, 240, 167, 27, 23, 2211, + 1302, 1001, 486, 342, 29, 344, 203, 330, 1541, 696, + 442, 1573, 1038, 493, 240, 1577, 491, 1579, 493, 240, + 495, 240, 219, 455, 13, 14, 1566, 1645, 406, 1647, + 1648, 228, 497, 372, 499, 448, 577, 196, 23, 494, + 727, 1581, 497, 366, 29, 362, 363, 479, 78, 1541, + 493, 497, 1585, 2177, 2177, 8, 597, 87, 11, 2177, + 2177, 493, 330, 16, 17, 18, 494, 2334, 455, 497, + 457, 130, 799, 252, 253, 13, 14, 23, 401, 806, + 494, 2766, 1541, 29, 13, 14, 116, 246, 2804, 1813, + 130, 1815, 405, 1585, 407, 254, 494, 156, 366, 497, + 494, 1908, 494, 23, 601, 497, 603, 266, 1653, 29, + 135, 1736, 54, 358, 2276, 2129, 156, 1143, 493, 115, + 2805, 8, 1148, 287, 494, 448, 1585, 497, 2128, 16, + 17, 18, 358, 401, 1935, 13, 14, 358, 297, 358, + 1166, 218, 566, 567, 287, 569, 1172, 1173, 2116, 476, + 135, 838, 349, 526, 168, 2318, 186, 884, 2321, 494, + 214, 1187, 497, 2952, 494, 338, 893, 497, 198, 856, + 2127, 2171, 2129, 494, 2890, 405, 497, 407, 342, 906, + 448, 13, 14, 362, 363, 344, 150, 432, 494, 135, + 917, 497, 919, 920, 494, 338, 150, 497, 494, 342, + 494, 497, 2918, 497, 2889, 1231, 432, 366, 372, 1911, + 1912, 432, 494, 432, 273, 135, 150, 1230, 149, 278, + 494, 1247, 1876, 497, 1526, 526, 150, 386, 268, 372, + 1231, 493, 2100, 273, 1260, 2314, 1262, 2316, 278, 1265, + 1266, 194, 494, 94, 1257, 497, 268, 494, 493, 1275, + 497, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 2974, 1257, + 149, 802, 287, 216, 495, 1257, 36, 493, 82, 1257, + 353, 354, 493, 1257, 493, 439, 1302, 494, 1304, 494, + 497, 493, 497, 1309, 1310, 1311, 1312, 1313, 1314, 13, + 14, 494, 1318, 1319, 497, 36, 439, 1323, 448, 840, + 296, 1327, 287, 459, 1330, 1331, 1332, 1333, 1334, 1335, + 1336, 1337, 1338, 338, 55, 1341, 494, 342, 169, 497, + 1346, 13, 14, 1349, 2486, 1351, 445, 1353, 494, 702, + 1356, 497, 285, 494, 1940, 494, 497, 878, 2605, 2146, + 493, 287, 312, 1645, 1646, 1647, 1648, 372, 2146, 493, + 1376, 150, 203, 338, 13, 14, 1889, 342, 388, 494, + 419, 391, 497, 1389, 493, 106, 493, 287, 219, 365, + 2384, 430, 1373, 494, 1400, 1401, 497, 228, 2013, 419, + 1682, 494, 494, 494, 497, 497, 497, 372, 2356, 35, + 430, 494, 338, 493, 497, 1935, 342, 1889, 285, 13, + 14, 702, 145, 2483, 150, 401, 947, 948, 1434, 950, + 494, 262, 150, 497, 439, 158, 150, 1443, 338, 1445, + 163, 283, 342, 401, 1422, 1958, 372, 493, 1930, 5, + 1889, 2305, 8, 494, 365, 808, 497, 494, 14, 494, + 497, 494, 497, 1976, 497, 2319, 442, 494, 526, 25, + 497, 36, 372, 29, 439, 196, 491, 494, 1484, 455, + 497, 1487, 1488, 229, 1490, 5, 1958, 493, 2001, 212, + 401, 494, 2107, 5, 497, 2008, 365, 494, 494, 2641, + 497, 497, 1508, 479, 1976, 2068, 2210, 493, 231, 493, + 1516, 494, 2572, 439, 497, 13, 14, 493, 349, 1958, + 1526, 494, 163, 494, 497, 246, 497, 808, 5, 2001, + 493, 442, 401, 254, 493, 1541, 2008, 1976, 494, 439, + 493, 497, 493, 296, 455, 266, 1524, 480, 481, 482, + 493, 484, 485, 486, 487, 488, 489, 280, 2163, 2031, + 1566, 2147, 2001, 2149, 1271, 493, 289, 494, 479, 2008, + 497, 494, 5, 442, 497, 1581, 297, 1583, 494, 1585, + 2640, 497, 493, 174, 1590, 493, 455, 494, 2375, 1595, + 497, 494, 2031, 2380, 497, 5, 494, 2375, 1633, 497, + 494, 494, 494, 497, 497, 497, 197, 13, 14, 493, + 479, 493, 365, 480, 481, 482, 493, 484, 485, 486, + 487, 488, 489, 344, 493, 1631, 1632, 1633, 493, 2876, + 1636, 2611, 985, 2146, 2421, 2422, 13, 14, 493, 1645, + 1646, 1647, 1648, 234, 702, 366, 11, 1682, 401, 1655, + 15, 13, 14, 1659, 493, 1362, 1662, 5, 23, 13, + 14, 13, 14, 13, 14, 386, 13, 14, 493, 34, + 35, 1677, 1678, 493, 2146, 493, 1682, 13, 14, 13, + 14, 13, 14, 2387, 2388, 13, 14, 13, 14, 442, + 1696, 353, 354, 1699, 2207, 1701, 2477, 288, 256, 257, + 353, 354, 455, 493, 985, 428, 146, 2146, 9, 1230, + 2325, 362, 363, 353, 354, 493, 1722, 919, 920, 456, + 15, 214, 87, 497, 2006, 97, 479, 2415, 1734, 2344, + 36, 163, 280, 163, 1734, 2207, 1257, 278, 229, 372, + 493, 493, 412, 1749, 493, 86, 497, 412, 412, 54, + 808, 54, 412, 1788, 259, 1748, 494, 502, 412, 455, + 1766, 1767, 150, 93, 495, 36, 142, 268, 2207, 268, + 1748, 493, 36, 6, 493, 1734, 1748, 1783, 11, 9, + 1748, 35, 15, 1783, 1748, 2341, 410, 20, 21, 22, + 23, 24, 410, 1799, 27, 412, 491, 30, 31, 1320, + 491, 34, 35, 412, 2276, 412, 412, 2594, 2595, 497, + 1816, 1817, 1818, 451, 405, 493, 407, 11, 2605, 1172, + 1173, 340, 497, 492, 1783, 502, 497, 2605, 410, 273, + 493, 50, 493, 412, 1187, 177, 159, 2276, 429, 72, + 497, 432, 494, 168, 493, 212, 375, 220, 284, 305, + 305, 1857, 497, 86, 87, 88, 89, 90, 436, 1566, + 36, 36, 493, 220, 268, 1572, 289, 220, 321, 281, + 493, 448, 268, 2386, 1581, 283, 95, 493, 150, 55, + 150, 455, 494, 1889, 476, 283, 491, 476, 268, 36, + 494, 1172, 1173, 494, 494, 494, 36, 492, 494, 168, + 476, 1422, 121, 168, 494, 493, 1187, 494, 494, 8, + 494, 494, 11, 494, 2386, 495, 412, 16, 17, 18, + 139, 494, 494, 494, 143, 493, 493, 985, 452, 1935, + 106, 493, 293, 478, 1940, 284, 497, 434, 2932, 284, + 284, 239, 452, 2415, 283, 164, 482, 2386, 167, 1955, + 442, 412, 1958, 268, 493, 1933, 1309, 2477, 1964, 150, + 197, 1967, 150, 182, 1970, 287, 150, 412, 275, 412, + 1976, 1977, 1978, 1979, 1980, 2010, 2415, 1983, 1984, 1985, + 1986, 1987, 1988, 1989, 1990, 1991, 1992, 412, 412, 275, + 1996, 1997, 494, 493, 150, 2001, 172, 492, 281, 283, + 2006, 455, 2008, 1524, 2010, 2043, 2041, 494, 497, 36, + 492, 492, 150, 2019, 2486, 273, 2022, 141, 2024, 168, + 196, 11, 163, 2058, 494, 2031, 2032, 494, 1309, 2035, + 2036, 494, 168, 493, 2040, 2041, 494, 452, 401, 168, + 497, 479, 177, 494, 494, 2650, 493, 2486, 284, 346, + 2056, 441, 2058, 84, 273, 150, 2056, 172, 2058, 493, + 497, 145, 281, 2069, 423, 494, 494, 494, 494, 36, + 246, 493, 436, 493, 158, 79, 492, 494, 254, 163, + 8, 1434, 168, 11, 497, 2719, 493, 2093, 2570, 2876, + 266, 494, 2605, 494, 494, 494, 493, 2056, 2876, 2058, + 493, 403, 219, 292, 2110, 324, 219, 493, 290, 54, + 181, 494, 1633, 41, 1172, 1173, 1823, 216, 2704, 199, + 48, 297, 482, 187, 455, 273, 495, 273, 212, 1187, + 2655, 36, 412, 2605, 268, 412, 501, 2143, 493, 495, + 2146, 2147, 107, 2149, 495, 73, 283, 231, 2673, 495, + 36, 168, 495, 1434, 219, 495, 455, 495, 495, 2672, + 1867, 1682, 2675, 302, 493, 530, 2605, 494, 344, 2641, + 86, 495, 493, 1880, 2808, 495, 495, 495, 495, 1700, + 454, 495, 495, 495, 495, 495, 285, 495, 1541, 482, + 366, 495, 131, 493, 220, 1716, 280, 81, 115, 495, + 2672, 2207, 2641, 2675, 495, 289, 495, 495, 495, 494, + 386, 493, 332, 1734, 495, 143, 495, 495, 2224, 36, + 493, 150, 2200, 73, 589, 67, 493, 1748, 1935, 122, + 150, 73, 1585, 2672, 494, 1942, 2675, 1944, 36, 494, + 354, 1948, 1949, 2725, 86, 173, 354, 54, 36, 493, + 483, 1309, 493, 493, 2779, 493, 489, 323, 493, 492, + 1541, 189, 1783, 496, 2270, 2271, 194, 1788, 501, 2275, + 2276, 497, 2883, 115, 2280, 117, 441, 2283, 2284, 73, + 36, 170, 2288, 186, 436, 174, 67, 286, 67, 493, + 423, 493, 2878, 36, 497, 528, 529, 530, 372, 482, + 273, 186, 230, 2309, 1585, 436, 244, 2313, 197, 2309, + 36, 423, 545, 2313, 493, 493, 493, 286, 286, 2801, + 494, 494, 493, 356, 266, 283, 9, 339, 353, 199, + 172, 564, 565, 566, 567, 2341, 569, 283, 33, 283, + 494, 434, 493, 120, 428, 234, 9, 580, 22, 494, + 2309, 597, 241, 1172, 2313, 1231, 589, 285, 1220, 201, + 911, 1749, 2368, 2876, 1417, 2343, 599, 2345, 938, 2776, + 2797, 2377, 957, 2914, 1766, 1389, 1434, 2073, 2857, 2791, + 2386, 480, 481, 482, 617, 484, 485, 486, 487, 488, + 489, 2331, 956, 2691, 86, 1416, 88, 2058, 90, 288, + 959, 1783, 2300, 2315, 2876, 2669, 2056, 491, 2766, 2415, + 494, 495, 1933, 2765, 2783, 1271, 2784, 650, 651, 652, + 1271, 1271, 1271, 2542, 2860, 2844, 268, 2861, 1347, 1752, + 1262, 273, 1660, 1700, 1591, 1490, 1697, 2876, 1351, 2146, + 2739, 1737, 2072, 2130, 1451, 1811, 2143, 954, 1373, 377, + 1940, 2173, 1873, 2477, 1581, 2109, 967, 1877, 2185, 2380, + 2346, 2108, 1374, 2805, 2547, 2874, 2173, 2880, 2955, 358, + 2711, 2477, 2931, 2919, 316, 2628, 1817, 2483, 972, 1805, + 2486, 2763, 2190, 1541, 2490, 2463, 2878, 2149, 1869, 2010, + 332, 2929, 2498, 2499, 1802, 2875, 2502, -1, -1, -1, + -1, -1, -1, 8, 526, 2787, 11, 2789, 2514, -1, + -1, 16, 17, 18, 2514, -1, 405, 2523, 407, -1, + 2041, -1, 2528, 2523, -1, 2531, -1, 1585, 2528, -1, + -1, 2531, 2538, 2539, 423, 2056, 1889, 2058, -1, -1, + 429, -1, -1, 432, -1, 2551, -1, 2553, -1, 477, + -1, 2551, -1, -1, -1, 2514, 484, 485, 486, 487, + 488, 489, -1, -1, 2523, 3, 2572, 5, 8, 2528, + -1, 11, 2531, 938, -1, -1, 16, 17, 18, 812, + -1, -1, -1, -1, -1, -1, -1, 429, -1, -1, + -1, -1, 2551, 33, 436, -1, -1, -1, -1, 2605, + -1, -1, -1, -1, -1, 1958, -1, -1, 1889, -1, + -1, -1, -1, -1, -1, -1, 2622, -1, -1, -1, + -1, -1, 2622, 1976, -1, 2332, -1, -1, -1, -1, + -1, -1, -1, -1, 2640, 2641, -1, 2615, -1, -1, + -1, -1, -1, -1, 2679, -1, 879, -1, 2001, -1, + -1, -1, -1, -1, -1, 2008, -1, -1, 2664, 2637, + -1, -1, 2668, 2622, 526, -1, 2672, -1, 2668, 2675, + -1, 109, 110, 2679, -1, -1, -1, 1958, 2031, 2200, + 702, -1, -1, -1, -1, -1, -1, -1, 921, 2695, + -1, -1, -1, -1, -1, 1976, -1, -1, 2704, -1, + -1, -1, 2708, 2709, -1, 938, 939, -1, -1, 2668, + -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, + 2001, -1, 8, -1, -1, 11, -1, 2008, -1, -1, + -1, -1, -1, -1, 967, 968, 969, -1, 971, 972, + -1, -1, -1, -1, -1, -1, 184, 185, -1, 2456, + 2031, 984, -1, -1, -1, 41, -1, 2763, -1, -1, + 2766, -1, 48, 2741, -1, -1, 2766, -1, 1001, -1, + 2477, 1278, 1005, -1, -1, -1, 216, -1, -1, -1, + 285, 2787, -1, 2789, -1, 2791, 808, 73, 2309, 2795, + -1, 483, 2313, 2146, -1, -1, -1, -1, -1, 2805, + -1, -1, -1, -1, 496, 2805, -1, 2766, -1, -1, + 248, 249, 250, 251, 252, 253, -1, 2823, 256, 257, + 2798, -1, 2343, -1, 2345, -1, -1, -1, -1, -1, + -1, 1889, -1, -1, 2541, -1, -1, 2843, 2844, -1, + 702, -1, -1, -1, -1, 285, 2805, -1, -1, -1, + -1, 2857, -1, -1, 2207, -1, -1, 143, -1, 1224, + -1, 1226, -1, -1, -1, 2146, -1, -1, -1, -1, + 2876, -1, 2878, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1389, 2889, -1, -1, -1, 173, 580, 2889, + 2896, -1, -1, -1, -1, -1, -1, -1, 2605, -1, + 1958, 1631, 1632, 189, -1, 1138, 1636, 599, 194, 2887, + -1, -1, -1, -1, 1147, -1, -1, 1150, 1976, -1, + -1, -1, -1, 2276, 362, 363, 2207, -1, -1, -1, + 2889, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2463, 2001, 230, -1, 808, 1677, 1678, -1, + 2008, -1, -1, -1, -1, -1, 1189, 2963, 650, 651, + 652, -1, -1, 985, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2031, -1, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, -1, -1, 1220, 1221, -1, + 1223, 1224, -1, 1226, 1227, 2276, 1229, -1, -1, 285, + -1, -1, 2523, -1, -1, -1, -1, 2528, -1, -1, + 2531, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2734, -1, -1, + -1, -1, -1, 2386, -1, 473, 474, -1, -1, -1, + 480, 481, 482, 1276, 484, 485, 486, 487, 488, 489, + -1, -1, -1, -1, 1287, -1, -1, -1, -1, -1, + -1, -1, 2415, -1, 1429, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1439, -1, 1441, -1, -1, 1444, + -1, -1, -1, -1, 1317, 1450, -1, 1452, 2146, -1, + -1, 377, -1, -1, 2615, -1, -1, -1, -1, 1464, + -1, -1, -1, -1, 1469, 2386, -1, -1, 1473, 1474, + 1475, 1476, -1, 1478, 1479, -1, 2637, 1350, 1351, -1, + -1, -1, -1, 985, 1631, 1632, -1, -1, 8, 1636, + -1, 11, -1, 2486, 2415, -1, 16, 17, 18, 1372, + -1, 1374, -1, -1, -1, -1, -1, 2668, -1, 2207, + 1172, 1173, -1, -1, -1, -1, -1, -1, 2679, -1, + -1, 41, -1, -1, -1, 1187, -1, -1, 48, 2876, + 1677, 1678, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1414, -1, -1, -1, -1, -1, -1, -1, -1, + 1423, 477, 1425, 73, -1, 1428, 1429, -1, 484, 485, + 486, 487, 488, 489, -1, 2486, 1439, 1440, 1441, 1442, + -1, 1444, -1, -1, -1, -1, -1, 1450, 2276, 1452, + 2741, -1, -1, -1, -1, -1, -1, -1, -1, 921, + 1463, 1464, -1, -1, -1, 1468, 1469, -1, -1, -1, + 1473, 1474, 1475, 1476, -1, 1478, 1479, 1977, 1978, 1979, + 1980, -1, 2605, 1983, 1984, 1985, 1986, 1987, 1988, 1989, + 1990, 1991, 1992, -1, -1, 1498, 1499, 1500, -1, -1, + -1, -1, -1, -1, -1, -1, 968, 2798, -1, 971, + -1, -1, -1, -1, -1, 36, -1, 1309, 2641, 1522, + -1, -1, 984, 173, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 55, 2035, 2036, -1, -1, 189, + 1172, 1173, -1, 1005, 194, -1, -1, -1, -1, 2672, + -1, -1, 2675, -1, 2605, 1187, -1, -1, 2386, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + 230, -1, -1, -1, -1, 106, 107, 2415, -1, -1, + 2641, -1, -1, -1, 115, -1, 2887, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2672, -1, -1, 2675, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, + -1, -1, 1434, -1, -1, -1, -1, -1, -1, -1, + 1653, 172, -1, -1, -1, -1, -1, 1660, 2486, -1, + -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, + -1, -1, -1, -1, -1, 196, -1, 1309, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1150, -1, + -1, 1694, -1, -1, -1, -1, -1, -1, -1, -1, + 1977, 1978, 1979, 1980, -1, -1, 1983, 1984, 1985, 1986, + 1987, 1988, 1989, 1990, 1991, 1992, -1, -1, -1, 145, + -1, -1, -1, -1, 1727, 246, -1, 377, -1, -1, + -1, 1734, 158, 254, -1, -1, -1, 163, -1, -1, + -1, -1, 168, -1, -1, 266, -1, 268, -1, 1541, + -1, 177, -1, 2876, -1, 181, -1, -1, 2035, 2036, + -1, -1, -1, -1, 1899, -1, -1, 1229, 8, -1, + -1, 11, -1, -1, -1, -1, 297, 2605, -1, -1, + 1783, -1, 1785, -1, -1, 1788, 212, -1, -1, 1792, + -1, -1, -1, 1585, -1, -1, -1, -1, -1, -1, + -1, 41, 1434, -1, 1807, 231, -1, -1, 48, -1, + -1, -1, -1, 2641, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 344, -1, 2876, -1, 477, -1, -1, + 480, 481, 482, 73, 484, 485, 486, 487, 488, 489, + -1, -1, -1, -1, 2672, 366, -1, 2675, -1, -1, + -1, -1, -1, -1, 280, -1, -1, 283, -1, -1, + -1, -1, -1, 289, -1, 386, 1869, 388, -1, -1, + 391, 1874, -1, -1, -1, -1, -1, -1, -1, 1882, + -1, -1, 1885, 1886, 1887, 1888, -1, -1, 1350, -1, + -1, -1, -1, -1, -1, -1, 1899, 323, -1, -1, + -1, -1, -1, 143, -1, -1, -1, -1, -1, 1541, + 1372, 1914, 1374, 0, -1, -1, -1, -1, -1, -1, + 346, -1, -1, -1, -1, -1, -1, 1930, -1, -1, + -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1946, 1947, -1, -1, -1, -1, 189, + -1, -1, 1414, 1585, 194, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1969, -1, -1, -1, + -1, -1, 493, -1, -1, 401, 2111, -1, -1, -1, + -1, -1, -1, 2483, 8, -1, -1, 11, -1, -1, + 230, -1, 16, 17, 18, -1, -1, -1, -1, -1, + 2135, -1, 428, -1, -1, -1, 93, -1, -1, 33, + 436, -1, -1, -1, -1, 2150, 2151, 2152, 2153, 2154, + 2155, 2156, 2157, 2158, 2159, -1, 452, -1, 454, 455, + -1, -1, -1, -1, -1, -1, 1498, 1499, -1, -1, + -1, -1, 2045, -1, -1, 285, -1, -1, 2876, -1, + 2053, 2054, 2055, 2056, -1, 2058, 2059, -1, 145, -1, + 2063, 2064, -1, -1, -1, 491, -1, -1, 494, 495, + 496, 158, 2572, -1, -1, -1, 163, -1, -1, -1, + -1, 168, -1, -1, -1, -1, -1, 2090, -1, -1, + 177, -1, -1, -1, 181, -1, -1, 1889, -1, -1, + -1, -1, -1, -1, -1, 2108, 0, -1, 2111, -1, + -1, -1, 2115, 2116, 2117, -1, 2119, -1, -1, -1, + -1, -1, -1, -1, -1, 212, -1, -1, -1, -1, + -1, -1, 2135, -1, 2137, -1, -1, 377, -1, -1, + 2640, -1, -1, -1, 231, -1, -1, 2150, 2151, 2152, + 2153, 2154, 2155, 2156, 2157, 2158, 2159, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1958, -1, -1, -1, + -1, -1, 2175, -1, -1, 2178, -1, -1, -1, 2182, + 109, 110, -1, -1, 1976, -1, -1, 2190, -1, 564, + 565, -1, 216, 280, -1, -1, 283, -1, -1, 93, + -1, -1, 289, -1, -1, -1, 2483, -1, 2211, 2001, + -1, -1, -1, -1, -1, 2218, 2008, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 323, 477, -1, 2031, + -1, -1, -1, -1, 484, 485, 486, 487, 488, 489, + -1, 145, 627, 628, -1, 184, 185, 1889, -1, 346, + -1, 285, -1, 2266, 158, 1727, -1, -1, -1, 163, + -1, -1, -1, -1, 168, -1, -1, -1, -1, -1, + -1, -1, -1, 177, -1, -1, 2289, 181, -1, 2292, + 2293, 2294, 2295, -1, -1, 2572, 2299, 2300, -1, 2302, + -1, -1, 2305, -1, -1, -1, 2309, -1, -1, -1, + 2313, -1, -1, -1, 401, -1, 2319, -1, 212, 248, + 249, 250, 251, 252, 253, -1, 1958, 256, 257, -1, + -1, 2334, -1, -1, -1, -1, -1, 231, 2341, -1, + -1, 428, -1, 2346, 1976, -1, -1, 2350, -1, 436, + -1, -1, -1, 2356, 2146, -1, -1, -1, -1, -1, + -1, -1, -1, 2640, -1, 452, -1, 454, 455, 2001, + -1, -1, -1, -1, -1, -1, 2008, -1, 2381, -1, + -1, -1, -1, -1, -1, -1, 280, -1, -1, 283, + -1, -1, -1, -1, -1, 289, -1, -1, -1, 2031, + -1, -1, -1, -1, 491, -1, -1, 494, 495, 496, + -1, -1, 1874, -1, -1, 2207, -1, -1, -1, -1, + 1882, -1, -1, -1, 1886, 1887, 1888, -1, -1, 323, + -1, -1, 807, 362, 363, -1, 2571, -1, -1, -1, + 8, -1, -1, 11, -1, -1, -1, 2450, -1, 824, + -1, -1, 346, -1, -1, 2458, 480, 481, 482, 2462, + 484, 485, 486, 487, 488, 489, -1, -1, -1, -1, + -1, 2606, 2607, 41, -1, -1, -1, -1, 853, -1, + 48, -1, -1, -1, 2276, -1, -1, -1, -1, -1, + 2625, -1, -1, -1, -1, -1, -1, -1, 873, 874, + 875, -1, -1, 878, -1, 73, -1, 401, -1, -1, + -1, 2514, 2515, 8, 2146, 2518, 11, -1, 2521, -1, + 2523, 16, 17, 18, -1, 2528, 901, -1, 2531, -1, + 2533, -1, -1, 2536, 428, -1, -1, -1, 33, -1, + -1, -1, 436, -1, 473, 474, -1, -1, 2551, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 452, 2694, + 454, 455, 109, 110, 493, -1, -1, 2570, 2571, -1, + -1, -1, -1, -1, 949, 2207, 2579, -1, 953, 954, + -1, -1, -1, -1, -1, 8, 2721, -1, 11, -1, + -1, 2053, 2054, 2055, 2386, -1, -1, 491, -1, -1, + 494, 495, 496, 2606, 2607, 173, -1, -1, -1, -1, + -1, -1, -1, -1, 2617, -1, 2619, -1, 41, 2622, + -1, 189, 2625, 2415, -1, 48, 194, -1, 2090, -1, + -1, -1, -1, -1, -1, 1010, -1, 184, 185, -1, + -1, -1, 1017, -1, 2276, -1, -1, -1, -1, -1, + 73, -1, 2655, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 230, 1038, -1, 2668, -1, -1, -1, -1, + 2673, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2688, -1, -1, -1, -1, + -1, 2694, -1, -1, 2486, -1, -1, -1, -1, 2702, + -1, 248, 249, 250, 251, 252, 253, -1, -1, 256, + 257, 894, -1, -1, -1, -1, 2178, 285, 2721, -1, + 143, 216, 2725, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2738, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2211, + 173, 934, -1, -1, 2386, -1, -1, -1, -1, -1, + -1, -1, -1, 2766, -1, -1, 189, -1, -1, -1, + -1, 194, 2775, 1148, -1, -1, 2779, -1, -1, -1, + 2783, -1, -1, 2415, -1, -1, -1, -1, -1, -1, + 285, -1, -1, -1, -1, -1, -1, -1, 2801, 2802, + 2803, -1, 2805, -1, -1, -1, -1, 230, -1, 377, + -1, -1, -1, 2605, -1, 362, 363, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2292, 2293, 2294, 2295, 8, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, 2848, -1, -1, -1, 2641, + -1, -1, -1, -1, 2486, -1, -1, 2860, -1, 1042, + -1, -1, 285, -1, -1, -1, 1049, 41, -1, -1, + -1, 2874, -1, -1, 48, -1, -1, -1, -1, -1, + 2672, -1, -1, 2675, -1, 2888, 2889, -1, -1, -1, + 1265, -1, -1, -1, -1, -1, -1, -1, -1, 73, + 1275, -1, 1277, -1, -1, 1280, 1281, 1282, 1283, 477, + -1, 2914, 2915, -1, -1, -1, 484, 485, 486, 487, + 488, 489, -1, -1, -1, -1, 473, 474, -1, 1304, + -1, -1, -1, -1, -1, 1310, 1311, 1312, 1313, -1, + -1, -1, -1, 1318, 1319, -1, -1, -1, 1323, -1, + -1, -1, 1327, -1, 377, 1330, 1331, 1332, 1333, 1334, + 1335, 1336, 1337, 1338, -1, -1, 1341, -1, -1, 143, + -1, 1346, -1, 2605, 1349, -1, 1351, -1, 1353, -1, + -1, 0, -1, -1, -1, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, -1, -1, -1, -1, 173, + 19, 1376, -1, -1, -1, -1, -1, -1, -1, 2641, + 29, -1, 31, 32, -1, 189, -1, -1, -1, -1, + 194, -1, -1, -1, -1, 1400, 1401, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, + 2672, -1, -1, 2675, -1, -1, -1, -1, -1, 68, + -1, -1, -1, -1, 477, -1, 230, -1, -1, -1, + 79, 484, 485, 486, 487, 488, 489, -1, -1, -1, + -1, -1, 91, -1, 93, -1, -1, -1, -1, -1, + 1263, -1, -1, -1, 2876, -1, -1, -1, -1, -1, + -1, 1274, 111, -1, -1, 1278, -1, -1, -1, -1, + -1, 1284, 1285, 1286, -1, -1, 125, -1, -1, 1484, + 1293, 285, 1487, 1488, -1, 1490, 135, 2579, -1, -1, + -1, 8, 141, -1, 11, -1, -1, -1, -1, -1, + 149, -1, 151, 152, -1, -1, -1, -1, -1, 8, + -1, 1516, 11, -1, -1, 164, -1, 16, 17, 18, + -1, -1, -1, -1, 41, -1, -1, 2619, -1, -1, + 8, 48, -1, 11, 33, 1348, -1, -1, 16, 17, + 18, -1, 41, -1, 193, -1, -1, -1, -1, 48, + -1, -1, -1, -1, -1, 33, 73, -1, -1, 208, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1385, 377, 73, -1, -1, -1, 1583, -1, + -1, -1, -1, -1, 233, 1590, 1399, -1, -1, -1, + 1595, 1404, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2702, -1, -1, -1, 2876, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 143, -1, 1633, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1645, -1, 1647, 1648, -1, -1, 2738, -1, -1, -1, + 1655, -1, -1, -1, 1659, -1, 173, 1662, -1, -1, + -1, 310, -1, -1, 313, -1, -1, -1, -1, -1, + -1, -1, 189, 477, 173, -1, -1, 194, -1, -1, + 484, 485, 486, 487, 488, 489, -1, -1, -1, -1, + 189, 1696, -1, 342, 1699, 194, 1701, -1, -1, -1, + -1, -1, 351, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 230, -1, -1, 365, 216, 217, -1, + -1, -1, -1, 372, -1, -1, -1, 376, -1, -1, + -1, 230, -1, -1, -1, -1, -1, 386, 216, -1, + -1, -1, -1, -1, 1749, -1, -1, -1, 397, -1, + -1, -1, 401, -1, -1, -1, -1, -1, -1, -1, + -1, 1766, 1767, -1, -1, -1, -1, -1, 285, 268, + -1, -1, 271, -1, -1, -1, -1, -1, -1, -1, + 1593, -1, -1, -1, -1, -1, 285, -1, 437, 288, + -1, -1, -1, 442, 1799, -1, -1, -1, -1, 1612, + -1, -1, -1, -1, -1, -1, 455, 285, -1, -1, + -1, -1, -1, -1, -1, -1, 1629, -1, 1631, 1632, + -1, 1634, -1, 1636, -1, -1, -1, -1, 1641, -1, + 479, 1644, -1, -1, -1, -1, 1649, -1, -1, 1652, + -1, -1, -1, -1, 493, -1, -1, 496, -1, -1, + -1, 1664, 1857, -1, -1, 1668, 1669, 1670, 1671, -1, + 377, -1, -1, -1, 1677, 1678, -1, 1680, 1681, -1, + -1, -1, 3, -1, -1, -1, -1, 8, 377, 1692, + 11, -1, 1695, -1, -1, 16, 17, 18, -1, -1, + 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, + -1, -1, 33, -1, -1, 36, -1, 1720, -1, -1, + 41, 1724, -1, -1, -1, -1, -1, 48, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1746, -1, -1, -1, -1, -1, -1, + -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, + 1955, -1, -1, -1, -1, -1, -1, -1, -1, 1964, + 477, -1, 1967, -1, -1, 1970, -1, 484, 485, 486, + 487, 488, 489, -1, -1, -1, -1, -1, 477, -1, + -1, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, 1996, 1997, -1, -1, -1, -1, -1, 497, -1, + -1, -1, 480, 481, 482, 2010, 484, 485, 486, 487, + 488, 489, -1, -1, 2019, -1, -1, 2022, -1, 2024, + -1, -1, -1, -1, -1, -1, -1, 2032, -1, 8, + -1, -1, 11, -1, -1, 2040, 2041, 16, 17, 18, + -1, -1, 173, -1, -1, -1, -1, -1, -1, 1862, + 1863, 1864, -1, -1, 33, -1, -1, 36, 189, -1, + -1, -1, 41, 194, 2069, -1, -1, -1, -1, 48, + -1, 1884, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 216, 217, -1, 2093, -1, + -1, -1, -1, -1, 73, -1, -1, -1, -1, 230, + -1, -1, -1, -1, -1, 2110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, -1, 11, -1, -1, -1, -1, 16, 17, 18, + -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, + 271, 1954, -1, -1, 33, -1, -1, 1960, -1, -1, + -1, -1, 41, -1, 285, -1, -1, 288, -1, 48, + 1973, 1974, 1975, -1, 1977, 1978, 1979, 1980, -1, -1, + 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, + 1993, -1, -1, -1, 73, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, -1, -1, -1, 2011, -1, + -1, 2014, -1, 2016, -1, -1, -1, 2020, 2021, -1, + 189, -1, -1, -1, -1, 194, -1, -1, -1, 2224, + -1, 2034, 2035, 2036, 2037, -1, 2039, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 216, 217, -1, + -1, -1, -1, -1, -1, -1, 377, -1, -1, -1, + -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2270, 2271, -1, -1, -1, + 2275, -1, -1, -1, -1, 2280, -1, -1, 2283, 2284, + -1, -1, -1, 2288, 173, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, -1, -1, -1, 2112, + 189, -1, -1, -1, -1, 194, 285, -1, -1, 288, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 216, 217, -1, + -1, -1, -1, -1, -1, -1, 2341, -1, -1, -1, + -1, 230, -1, -1, -1, -1, 477, -1, -1, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2377, -1, -1, -1, -1, -1, -1, 268, + -1, 8, 271, -1, 11, -1, -1, -1, -1, 16, + 17, 18, -1, -1, -1, -1, 285, -1, 377, 288, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, 2225, -1, 41, -1, 2229, 2230, -1, 2232, + -1, 48, 2235, 2236, 2237, 2238, -1, -1, -1, 2242, + 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, + 2253, -1, -1, -1, -1, -1, 73, -1, -1, -1, + 2263, -1, -1, -1, 23, -1, 2269, -1, -1, 2272, + 29, 2274, -1, -1, -1, 2278, -1, 36, 2281, 2282, + -1, -1, 2285, 2286, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2490, 55, -1, 377, -1, + -1, -1, -1, 2498, 2499, -1, -1, 2502, 477, -1, + -1, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, -1, -1, 2326, -1, 494, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2340, -1, -1, + -1, -1, -1, 2538, 2539, -1, -1, 106, -1, -1, + 2353, -1, -1, -1, 8, -1, 173, 11, 2553, -1, + -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, + -1, -1, 189, -1, -1, -1, 135, 194, -1, 33, + -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, + -1, -1, 21, -1, 48, -1, -1, -1, 477, 216, + 217, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, -1, -1, 230, -1, 494, -1, -1, -1, 73, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 196, -1, -1, + -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 285, 2664, + -1, 288, -1, -1, -1, -1, 2479, -1, -1, -1, + 2483, -1, -1, -1, 2679, -1, -1, 246, -1, 2492, + 2493, 2494, -1, -1, 2497, 254, -1, 2500, 2501, -1, + 2695, -1, 2505, -1, -1, -1, -1, 266, -1, -1, + -1, -1, -1, -1, 2709, 144, -1, -1, -1, 173, + -1, -1, -1, -1, 153, -1, -1, -1, 287, -1, + -1, -1, -1, -1, -1, 189, 165, -1, 297, -1, + 194, 170, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 377, -1, 216, 217, -1, -1, -1, -1, 197, 2572, + -1, -1, -1, -1, -1, -1, 230, -1, -1, 338, + -1, -1, -1, 342, -1, 344, -1, -1, 2591, -1, + -1, -1, -1, -1, -1, -1, 2791, -1, -1, -1, + 2795, -1, -1, -1, -1, -1, -1, 366, -1, -1, + -1, -1, 241, 372, 268, -1, 245, 271, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 386, 2823, -1, + -1, 285, -1, -1, 288, -1, 2639, 2640, -1, -1, + -1, -1, 2645, 2646, 2647, -1, -1, -1, 2843, 2844, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 477, -1, 2857, 480, 481, 482, -1, 484, 485, 486, + 487, 488, 489, -1, -1, -1, -1, 494, -1, 308, + 439, -1, -1, 2686, 2687, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, 2701, -1, + -1, 2896, -1, -1, -1, -1, -1, -1, -1, 2712, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 377, -1, -1, 355, -1, -1, 358, + -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, + 369, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2760, -1, 388, + -1, -1, -1, -1, -1, -1, -1, -1, 2963, -1, + -1, -1, 401, -1, -1, 2778, -1, -1, -1, 408, + -1, -1, -1, -1, -1, -1, -1, -1, 417, -1, + -1, -1, -1, -1, 423, -1, -1, 2800, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2814, -1, -1, -1, -1, -1, -1, -1, 448, + -1, -1, -1, 477, -1, -1, 480, 481, 482, -1, + 484, 485, 486, 487, 488, 489, -1, -1, -1, -1, + 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2862, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, 28, 29, 30, -1, -1, -1, -1, 35, + -1, -1, 2885, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, -1, 2899, -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, @@ -10463,7 +9787,7 @@ static const yytype_int16 yycheck[] = 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, @@ -10482,25 +9806,75 @@ static const yytype_int16 yycheck[] = 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, + 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, 402, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, + 396, 397, -1, 399, 400, -1, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, 434, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, 445, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, -1, -1, -1, -1, -1, -1, 483, 484, -1, - -1, -1, -1, -1, 490, -1, 492, -1, -1, -1, - -1, 497, -1, 499, 500, 3, 4, 5, 6, 7, + 476, 477, -1, -1, -1, -1, -1, -1, 484, 485, + 486, -1, -1, -1, -1, 491, -1, 493, 494, -1, + -1, -1, 498, -1, 500, 501, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, + -1, 28, 29, 30, -1, -1, -1, -1, 35, -1, + -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + -1, 68, 69, 70, 71, 72, -1, 74, -1, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, + 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, + -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, + 167, -1, 169, 170, 171, 172, 173, 174, -1, 176, + -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, + 197, 198, 199, 200, -1, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, -1, -1, + 227, 228, 229, 230, -1, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, + 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, + 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, + 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, + 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, -1, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + 447, 448, 449, 450, -1, -1, 453, -1, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, -1, 479, -1, -1, -1, -1, 484, 485, -1, + -1, -1, -1, -1, 491, -1, 493, 494, -1, -1, + -1, 498, -1, 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, 35, -1, -1, @@ -10532,28 +9906,78 @@ static const yytype_int16 yycheck[] = -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, 402, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, 434, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, 445, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, + 448, 449, 450, -1, -1, 453, -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, -1, - -1, -1, -1, -1, -1, 483, 484, -1, -1, -1, - -1, -1, 490, -1, 492, -1, -1, -1, -1, 497, - -1, 499, 500, 3, 4, 5, 6, 7, 8, 9, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, -1, -1, -1, -1, 484, 485, -1, -1, + -1, -1, -1, 491, -1, 493, -1, -1, -1, -1, + 498, -1, 500, 501, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + 29, 30, -1, -1, -1, -1, 35, -1, -1, 38, + 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, -1, 74, -1, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, + 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, + 159, 160, 161, 162, -1, 164, -1, 166, 167, 168, + 169, 170, 171, 172, 173, 174, -1, 176, -1, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, + 199, 200, -1, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, -1, 226, 227, 228, + 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, + -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, + 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, -1, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, -1, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + -1, -1, -1, -1, -1, 484, 485, -1, -1, -1, + -1, -1, 491, -1, 493, -1, -1, -1, -1, 498, + -1, 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, -1, -1, -1, 34, 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, @@ -10582,27 +10006,77 @@ static const yytype_int16 yycheck[] = 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, 402, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, 434, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, 445, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, 403, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, -1, -1, -1, - -1, -1, -1, 483, 484, -1, -1, -1, -1, -1, - 490, -1, 492, -1, -1, -1, -1, 497, -1, 499, - 500, 3, 4, 5, 6, 7, 8, 9, 10, -1, + 470, 471, 472, 473, 474, 475, 476, 477, -1, -1, + -1, -1, -1, -1, 484, 485, -1, -1, -1, -1, + -1, 491, -1, 493, -1, -1, -1, -1, 498, -1, + 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, + 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, + -1, -1, -1, -1, 35, -1, -1, 38, 39, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, + 71, 72, -1, 74, -1, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, + 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, + -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, + -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, + 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, + 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, + -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, + -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, + 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + -1, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, + 441, 442, 443, -1, 445, 446, 447, 448, 449, 450, + -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, -1, -1, + -1, -1, -1, 484, 485, 486, -1, -1, -1, -1, + 491, -1, 493, -1, -1, -1, -1, 498, -1, 500, + 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, @@ -10632,24 +10106,74 @@ static const yytype_int16 yycheck[] = 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - 402, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, 445, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, + 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, -1, -1, -1, -1, -1, - -1, 483, 484, -1, -1, -1, -1, -1, 490, -1, - 492, -1, -1, -1, -1, 497, -1, 499, 500, 3, + 472, 473, 474, 475, 476, 477, -1, -1, -1, -1, + -1, -1, 484, 485, -1, -1, -1, -1, -1, 491, + -1, 493, -1, -1, -1, -1, 498, -1, 500, 501, + 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, + -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, + 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, + -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, + -1, 74, -1, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, + 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, + 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, + 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, + -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, 174, -1, 176, -1, 178, 179, 180, -1, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, + 213, -1, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, -1, -1, 227, 228, 229, 230, -1, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + -1, -1, 285, 286, 287, -1, -1, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, + 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, + -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, -1, 399, 400, -1, 402, + 403, 404, 405, 406, 407, 408, -1, 410, 411, -1, + -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, 448, 449, 450, -1, -1, + 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, -1, -1, -1, -1, -1, + -1, 484, 485, -1, -1, -1, -1, -1, 491, -1, + 493, 494, -1, -1, -1, 498, -1, 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, @@ -10681,25 +10205,75 @@ static const yytype_int16 yycheck[] = -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, + 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, -1, 382, 383, + 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, 402, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, + 394, 395, 396, 397, -1, 399, 400, -1, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - 434, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, 445, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, -1, -1, -1, -1, -1, -1, 483, - 484, -1, -1, -1, -1, -1, 490, -1, 492, -1, - -1, -1, -1, 497, -1, 499, 500, 3, 4, 5, + 474, 475, 476, 477, -1, -1, -1, -1, -1, -1, + 484, 485, -1, -1, -1, -1, -1, 491, -1, 493, + 494, -1, -1, -1, 498, -1, 500, 501, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, + -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, + 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, -1, 68, 69, 70, 71, 72, -1, 74, + -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, + 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, + 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, + -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, -1, 159, 160, 161, 162, -1, 164, + -1, 166, 167, -1, 169, 170, 171, 172, 173, 174, + -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, + 195, 196, 197, 198, 199, 200, -1, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, + 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, + 315, -1, 317, 318, 319, 320, 321, 322, -1, 324, + 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, -1, 399, 400, -1, 402, 403, 404, + 405, 406, 407, 408, -1, 410, 411, -1, -1, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, -1, -1, 453, -1, + -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, -1, -1, -1, -1, -1, 484, + 485, -1, -1, -1, -1, -1, 491, -1, 493, -1, + -1, -1, -1, 498, -1, 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, 35, @@ -10716,7 +10290,7 @@ static const yytype_int16 yycheck[] = 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, - 166, 167, -1, 169, 170, 171, 172, 173, 174, -1, + 166, 167, 168, 169, 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, @@ -10731,176 +10305,78 @@ static const yytype_int16 yycheck[] = 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, 402, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, 434, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, 445, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, -1, -1, -1, -1, -1, -1, 483, 484, -1, - -1, -1, -1, -1, 490, -1, 492, -1, -1, -1, - -1, 497, -1, 499, 500, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, 35, -1, -1, - 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, 74, -1, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, 167, - -1, 169, 170, 171, 172, 173, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, - 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, - 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - -1, 269, 270, -1, 272, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, 402, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, 434, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, 445, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, -1, - -1, -1, -1, -1, -1, 483, 484, -1, -1, -1, - -1, -1, 490, -1, 492, -1, -1, -1, -1, 497, - -1, 499, 500, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, - -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, - 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, - 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, -1, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, 402, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, 434, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, 445, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, -1, -1, - -1, -1, -1, 483, 484, -1, -1, 3, 4, 5, - 6, 7, 492, 9, 10, -1, -1, -1, -1, 499, - 500, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, - -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, -1, 74, -1, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, - 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, - 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, - 166, 167, -1, 169, 170, 171, 172, 173, 174, -1, - 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, - 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, -1, - -1, 227, 228, 229, 230, -1, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, -1, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, - 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, + 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, 402, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, + 396, 397, -1, 399, 400, -1, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, 434, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, 445, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, -1, -1, -1, -1, -1, 483, 484, -1, - -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, - -1, -1, -1, 499, 500, 3, 4, 5, 6, 7, + 476, 477, -1, -1, -1, -1, -1, -1, 484, 485, + -1, -1, -1, -1, -1, 491, -1, 493, -1, -1, + -1, -1, 498, -1, 500, 501, 3, 4, 5, 6, + 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, + -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, + -1, 28, 29, 30, -1, -1, -1, -1, 35, -1, + -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + -1, 68, 69, 70, 71, 72, -1, 74, -1, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, + 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, + -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, + 167, -1, 169, 170, 171, 172, 173, 174, -1, 176, + -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, + 197, 198, 199, 200, -1, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, -1, -1, + 227, 228, 229, 230, -1, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, + 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, + 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, + 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, + 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, -1, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, -1, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, -1, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + 447, 448, 449, 450, -1, -1, 453, -1, -1, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, -1, -1, -1, -1, -1, -1, 484, 485, -1, + -1, -1, -1, -1, 491, -1, 493, -1, -1, -1, + -1, 498, -1, 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 28, 29, 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, @@ -10908,7 +10384,7 @@ static const yytype_int16 yycheck[] = 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, @@ -10918,1679 +10394,1155 @@ static const yytype_int16 yycheck[] = 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, 217, + 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, 402, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, 434, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, 445, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - -1, -1, -1, -1, -1, 483, 484, -1, -1, -1, - -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, - -1, 499, 500, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, - -1, 41, 42, 43, 44, 45, 46, 47, -1, 49, - 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, -1, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, - 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, -1, -1, 218, 219, - 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, - -1, -1, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, -1, 269, - 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, 402, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, 434, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, 445, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, -1, -1, - -1, -1, -1, 483, 484, 3, -1, -1, -1, -1, - 490, -1, 492, -1, -1, -1, -1, 497, -1, 499, - 500, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, 36, -1, - 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, - 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, - 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, - 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, - -1, 169, 170, 171, 172, -1, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, - 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, - 228, 229, -1, -1, 232, 233, 234, -1, -1, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, -1, 371, 372, 373, 374, 375, -1, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, 402, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - -1, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, -1, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, -1, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 493, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, 61, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, 74, -1, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, - 173, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, -1, 227, 228, 229, 230, -1, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, 284, 285, 286, 287, -1, -1, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, 445, 446, 447, 448, 449, -1, -1, 452, - -1, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, 3, 478, 5, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, -1, -1, -1, -1, -1, 484, 485, -1, -1, + -1, -1, -1, 491, -1, 493, -1, -1, -1, -1, + 498, -1, 500, 501, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, + 29, 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, - 59, -1, 61, 62, 63, 64, 65, 66, -1, 68, + 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, + 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, -1, 227, 228, + 219, 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, -1, - 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, - 279, -1, 281, 282, -1, 284, 285, 286, 287, -1, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, -1, 401, 402, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, 434, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, 445, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, -1, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 492, 19, 20, 21, 22, 23, 24, - 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, 61, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, 74, - -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, 167, -1, 169, 170, 171, 172, 173, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, -1, 269, 270, 271, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, 402, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, 434, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - 445, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, -1, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 492, 19, 20, - 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, - 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, 74, -1, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, - 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, - -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, - -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, - 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, - 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, - -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, - -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, -1, 269, 270, - 271, 272, -1, 274, 275, 276, 277, 278, 279, -1, - 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, - 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, 402, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, 434, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, 445, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, -1, 3, 4, 5, -1, - -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, - -1, 492, 19, 20, 21, 22, 23, 24, 25, 26, - -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, - 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 72, -1, -1, -1, 76, - 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, - 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, - -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, - -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, - -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, - -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, - 187, 188, -1, 190, 191, 192, 193, -1, 195, 196, - 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, - 207, 208, 209, 210, 211, -1, 213, -1, 215, -1, - -1, 218, -1, 220, 221, 222, 223, 224, -1, -1, - 227, -1, 229, -1, -1, 232, 233, 234, -1, -1, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, - 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, -1, 285, 286, - 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, - 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, - 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, - 367, 368, 369, -1, 371, 372, 373, 374, 375, -1, - 377, 378, 379, 380, -1, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - -1, 398, 399, -1, 401, -1, 403, 404, 405, 406, - 407, -1, 409, 410, -1, -1, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - -1, -1, 429, 430, 431, 432, 433, -1, -1, 436, - 437, 438, 439, 440, 441, 442, -1, 444, -1, 446, - 447, 448, 449, -1, -1, 452, -1, -1, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, - 3, -1, -1, -1, -1, -1, 483, 484, 485, -1, - -1, -1, -1, -1, -1, 492, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, -1, -1, 76, 77, 78, 79, 80, 81, -1, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, - -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, -1, -1, 227, -1, 229, -1, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, -1, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, 400, 401, -1, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, -1, 446, 447, 448, 449, -1, -1, 452, - -1, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, 3, 478, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, - 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, - 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, - 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, - 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, - -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, - 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, - 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, - 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, - 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, - -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, - 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, - 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, - -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, - 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, - 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, - 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, - -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, - 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, -1, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, -1, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, -1, 446, 447, 448, - 449, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, -1, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, -1, 3, 478, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 492, 19, 20, 21, 22, 23, 24, - 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, -1, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, 400, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, -1, 3, 478, 5, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 492, 19, 20, + 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + -1, -1, -1, -1, -1, 484, 485, -1, -1, -1, + -1, -1, 491, -1, 493, -1, -1, -1, -1, 498, + -1, 500, 501, 3, 4, 5, 6, 7, 8, 9, + 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, 35, -1, -1, 38, 39, + -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, + 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, 403, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, -1, + -1, -1, -1, -1, 484, 485, -1, -1, -1, -1, + -1, 491, -1, 493, -1, -1, -1, -1, 498, -1, + 500, 501, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, - 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, - -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, -1, -1, 76, 77, 78, 79, 80, - 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, + -1, -1, -1, -1, 35, -1, -1, 38, 39, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, + 71, 72, -1, 74, -1, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, - 161, 162, -1, 164, -1, 166, -1, -1, -1, 170, - 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, -1, 190, + 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, + 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, + 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, - -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, - 211, -1, 213, -1, 215, -1, -1, 218, -1, 220, - 221, 222, 223, 224, -1, -1, 227, -1, 229, -1, - -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, + -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, + -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, -1, 263, 264, 265, 266, 267, -1, 269, 270, - -1, 272, -1, 274, 275, 276, 277, 278, 279, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, - 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, -1, 349, 350, + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, -1, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, + 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + -1, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, + 441, 442, 443, -1, 445, 446, 447, 448, 449, 450, + -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, -1, 3, -1, 5, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 492, 19, 20, 21, 22, 23, 24, 25, 26, - -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, - 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 72, -1, -1, -1, 76, - 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, - 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, - -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, - -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, - 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, - -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, - -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, - 187, 188, -1, 190, 191, 192, 193, -1, 195, 196, - 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, - 207, 208, 209, 210, 211, -1, 213, -1, 215, -1, - -1, 218, -1, 220, 221, 222, 223, 224, -1, -1, - 227, -1, 229, -1, -1, 232, 233, 234, -1, -1, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, - 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, - 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, - 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, - 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, - 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, - 367, 368, 369, -1, 371, 372, 373, 374, 375, -1, - 377, 378, 379, 380, -1, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - -1, 398, 399, -1, 401, -1, 403, 404, 405, 406, - 407, -1, 409, 410, -1, -1, 413, 414, 415, 416, - 417, -1, 419, 420, 421, 422, 423, 424, 425, 426, - -1, -1, 429, 430, 431, 432, 433, -1, -1, 436, - 437, 438, 439, 440, 441, 442, -1, 444, -1, 446, - 447, 448, 449, -1, -1, 452, -1, -1, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 492, 19, 20, 21, 22, + 471, 472, 473, 474, 475, 476, 477, -1, -1, -1, + -1, -1, -1, 484, 485, -1, -1, -1, -1, -1, + 491, -1, 493, -1, -1, -1, -1, 498, -1, 500, + 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + -1, -1, -1, 35, -1, -1, 38, 39, -1, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, 74, -1, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, + 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, -1, -1, -1, + -1, -1, 484, 485, -1, -1, -1, -1, -1, 491, + -1, 493, -1, -1, -1, -1, 498, -1, 500, 501, + 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, + -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, + -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, -1, -1, 76, 77, 78, 79, 80, 81, -1, + -1, 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, - -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, + 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, + -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, 174, -1, 176, -1, 178, 179, 180, -1, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, -1, -1, 227, -1, 229, -1, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, + 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, + 213, -1, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, -1, -1, 227, 228, 229, 230, -1, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + -1, -1, 285, 286, 287, -1, -1, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, + -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, -1, 349, 350, 351, 352, + 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, -1, 382, + 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, -1, 401, -1, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, -1, 446, 447, 448, 449, -1, -1, 452, - -1, -1, 455, 456, 457, 458, 459, 460, 461, 462, + 393, 394, 395, 396, 397, -1, 399, 400, -1, 402, + 403, 404, 405, 406, 407, 408, -1, 410, 411, -1, + -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, 448, 449, 450, -1, -1, + 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, 3, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, - 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, - 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, - 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, - 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, - -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, - 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, - 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, - 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, - 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, - -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, - 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, - 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, - -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, - 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, - 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, - 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, - -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, - 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, -1, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, -1, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, -1, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, -1, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 492, 19, 20, 21, 22, 23, 24, - 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, -1, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, -1, -1, -1, -1, 3, 4, 5, -1, -1, - 8, 9, -1, -1, -1, -1, -1, 492, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - -1, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, -1, 151, 152, 153, 154, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - -1, -1, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, -1, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, -1, 292, 293, 294, -1, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, -1, 310, 311, -1, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, 416, -1, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 472, 473, 474, 475, -1, 3, - -1, 479, 480, 481, 8, 483, 484, 485, 486, 487, - 488, -1, 16, 17, 18, 19, 20, 21, 22, 23, + 473, 474, 475, 476, 477, -1, -1, -1, -1, -1, + -1, 484, 485, -1, -1, -1, -1, -1, 491, -1, + 493, -1, -1, -1, -1, 498, -1, 500, 501, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, - -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, - 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + -1, 35, -1, -1, 38, 39, -1, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, - -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, - -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, - -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, - -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, - 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, - 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, - 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, - 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, - -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, - 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, - -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, - 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, - 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, - 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, - 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, - -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, - -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, -1, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, - 374, 375, -1, 377, 378, 379, 380, -1, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, -1, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - -1, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, -1, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, -1, -1, -1, 479, 480, 481, -1, 483, - 484, 485, 486, 487, 488, 8, -1, -1, 11, -1, - -1, -1, -1, 16, 17, 18, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, - 33, 16, 17, 18, -1, -1, -1, -1, 41, -1, - -1, -1, -1, -1, -1, 48, -1, -1, 33, -1, - -1, -1, 8, -1, -1, 11, 41, -1, -1, -1, - 16, 17, 18, 48, -1, -1, -1, -1, -1, -1, - 73, 8, -1, -1, 11, -1, -1, 33, -1, 16, - 17, 18, -1, -1, -1, 41, -1, -1, 73, -1, - -1, -1, 48, -1, -1, -1, 33, -1, -1, -1, - -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, - -1, 48, -1, -1, -1, -1, -1, 73, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, - -1, 8, -1, -1, 11, -1, -1, -1, -1, 16, - 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, - 173, -1, -1, -1, 41, -1, -1, -1, -1, -1, - -1, 48, -1, -1, -1, -1, 189, -1, 173, -1, - 8, 194, -1, 11, -1, -1, -1, -1, 16, 17, - 18, -1, -1, -1, 189, -1, 73, -1, -1, 194, - -1, -1, -1, 216, 217, 33, -1, 173, -1, -1, - -1, -1, -1, 41, -1, -1, -1, 230, -1, -1, - 48, 216, 217, 189, -1, -1, 173, -1, 194, -1, - -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, - -1, -1, 189, -1, -1, 73, -1, 194, -1, -1, - 216, 217, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, -1, -1, 230, -1, -1, -1, -1, 216, - 217, -1, 285, 268, -1, 288, 271, -1, -1, -1, - -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, - 285, -1, -1, 288, -1, -1, 173, -1, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, -1, - -1, -1, 189, -1, -1, -1, -1, 194, -1, 285, - -1, 268, 288, -1, 271, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 285, 216, - 217, 288, -1, -1, -1, 173, -1, -1, -1, -1, - -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, - -1, 189, -1, 376, -1, -1, 194, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 376, -1, -1, -1, -1, -1, -1, 216, 217, - -1, 268, -1, -1, 271, -1, -1, -1, -1, -1, - -1, -1, 230, -1, -1, -1, -1, -1, 285, -1, - 376, 288, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 268, -1, -1, 271, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, - 288, -1, -1, 476, -1, -1, 479, 480, 481, -1, - 483, 484, 485, 486, 487, 488, -1, -1, -1, -1, - 493, 476, -1, -1, 479, 480, 481, -1, 483, 484, - 485, 486, 487, 488, -1, -1, -1, -1, 493, 376, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 476, -1, -1, 479, 480, 481, -1, 483, 484, 485, - 486, 487, 488, -1, -1, -1, -1, 493, -1, 476, - -1, -1, 479, 480, 481, -1, 483, 484, 485, 486, - 487, 488, -1, -1, -1, -1, 493, -1, 376, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, - -1, -1, 479, 480, 481, -1, 483, 484, 485, 486, - 487, 488, -1, -1, -1, -1, 493, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 476, 3, - -1, 479, 480, 481, -1, 483, 484, 485, 486, 487, - 488, -1, -1, 491, -1, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - -1, 45, 46, 47, 48, 49, -1, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, -1, 168, -1, 170, 171, 172, -1, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, -1, -1, 218, -1, 220, 221, 222, 223, - 224, 225, 226, 227, -1, 229, -1, 231, 232, 233, + 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, - 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, - -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, -1, 349, 350, 351, 352, 353, + 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, + 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 394, 395, 396, 397, -1, 399, 400, -1, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, -1, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 3, -1, -1, -1, -1, -1, -1, -1, - -1, 485, -1, -1, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, - 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, - -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, -1, -1, 76, 77, 78, 79, 80, - 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, - 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, - -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, - -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, - 161, 162, -1, 164, -1, 166, -1, -1, -1, 170, - 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, -1, 190, - 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, - -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, - 211, -1, 213, -1, 215, -1, -1, 218, -1, 220, - 221, 222, 223, 224, -1, -1, 227, -1, 229, -1, - -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, -1, 263, 264, 265, 266, 267, -1, 269, 270, - -1, 272, -1, 274, 275, 276, 277, 278, 279, -1, - 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, - 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, - 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, -1, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, -1, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 3, 4, 5, -1, -1, - -1, 9, -1, -1, 485, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, - 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, - 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, - 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, - 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, - -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, - 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, - -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, - -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, - -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, -1, 371, 372, 373, 374, 375, -1, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, -1, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, -1, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 3, 4, - 5, -1, -1, -1, 9, 483, 484, -1, -1, -1, + 474, 475, 476, 477, -1, -1, -1, -1, -1, -1, + 484, 485, -1, -1, -1, -1, -1, 491, -1, 493, + -1, -1, -1, -1, 498, -1, 500, 501, 3, 4, + 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + 35, -1, -1, 38, 39, -1, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, -1, 68, 69, 70, 71, 72, -1, 74, + -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, + -1, 166, 167, -1, 169, 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, + 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, + 195, 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, -1, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, + 215, -1, -1, 218, 219, 220, 221, 222, 223, 224, + -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, 283, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, -1, 269, 270, -1, 272, 273, 274, + 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, + 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, + 315, -1, 317, 318, 319, 320, 321, 322, -1, 324, + 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, + 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + -1, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, + 395, 396, 397, -1, 399, 400, -1, 402, 403, 404, + 405, 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, -1, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, 447, 448, 449, 450, -1, -1, 453, -1, + -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 3, 4, 5, -1, -1, -1, 9, 483, 484, + 475, 476, 477, -1, -1, -1, -1, -1, -1, 484, + 485, -1, -1, -1, -1, -1, 491, -1, 493, -1, + -1, -1, -1, 498, -1, 500, 501, 3, 4, 5, + 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, -1, 68, 69, 70, 71, 72, -1, 74, -1, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, -1, + -1, 227, 228, 229, 230, -1, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, -1, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, -1, -1, -1, -1, -1, -1, -1, 484, 485, + -1, -1, 3, 4, 5, 6, 7, 493, 9, 10, + -1, -1, -1, -1, 500, 501, -1, -1, 19, 20, + 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, + -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, + 71, 72, -1, 74, -1, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, + 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, + -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, + -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, + 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, + 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, + -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, + -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, -1, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, -1, + 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, + 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + -1, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, -1, -1, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, + 441, 442, 443, -1, 445, 446, 447, 448, 449, 450, + -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, -1, -1, -1, -1, + -1, -1, -1, 484, 485, -1, -1, -1, -1, -1, + -1, -1, 493, -1, -1, -1, -1, -1, -1, 500, + 501, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, - 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, - 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, - 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, - -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, - -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 72, -1, 74, -1, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, - 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, + 172, 173, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, - 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, - -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, - 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, - 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, - 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, -1, 285, 286, 287, -1, -1, 290, 291, - -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, - 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, -1, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, - 372, 373, 374, 375, -1, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - -1, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, -1, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, 8, -1, -1, 11, -1, - -1, 483, 484, 16, 17, 18, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, - 33, 16, 17, 18, 37, -1, -1, -1, 41, -1, - -1, -1, -1, -1, -1, 48, -1, -1, 33, -1, - -1, -1, 8, -1, -1, 11, 41, -1, -1, -1, - 16, 17, 18, 48, -1, -1, -1, -1, -1, -1, - 73, 8, -1, -1, 11, -1, -1, 33, -1, 16, - 17, 18, -1, -1, -1, 41, -1, -1, 73, -1, - -1, -1, 48, -1, -1, -1, 33, -1, -1, 36, - -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, - -1, 48, -1, -1, -1, -1, -1, 73, -1, -1, - -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, - 173, -1, -1, -1, -1, -1, -1, -1, 163, 33, - -1, -1, -1, 168, -1, -1, 189, 41, 173, -1, - -1, 194, -1, -1, 48, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 189, -1, 162, -1, -1, 194, - -1, -1, -1, 216, 217, -1, -1, 173, -1, 73, - -1, -1, -1, -1, -1, -1, -1, 230, -1, -1, - -1, 216, 217, 189, -1, -1, 173, -1, 194, -1, - -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, - -1, -1, 189, -1, -1, -1, -1, 194, -1, -1, - 216, 217, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, -1, -1, 230, -1, -1, -1, -1, 216, - 217, -1, 285, 268, -1, 288, 271, -1, -1, -1, - -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, - 285, -1, -1, 288, -1, -1, -1, -1, -1, -1, - -1, -1, 268, -1, -1, 271, -1, -1, -1, 173, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, - -1, 268, 288, -1, 271, 189, -1, -1, -1, -1, - 194, -1, -1, -1, -1, -1, -1, -1, 285, -1, - -1, 288, -1, -1, -1, 311, -1, -1, -1, -1, - -1, -1, 216, 217, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 376, -1, 8, 230, -1, 11, -1, - -1, -1, -1, 16, 17, 18, -1, -1, -1, -1, - -1, 376, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, 36, -1, -1, -1, -1, 41, -1, - -1, -1, -1, -1, 268, 48, -1, 271, -1, -1, - 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 285, 435, -1, 288, -1, -1, -1, -1, 376, - 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 306, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 476, -1, -1, 479, 480, 481, -1, - 483, 484, 485, 486, 487, 488, -1, -1, -1, -1, - -1, 476, -1, -1, 479, 480, 481, -1, 483, 484, - 485, 486, 487, 488, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 476, -1, 376, 479, 480, 481, -1, 483, 484, 485, - 486, 487, 488, -1, -1, -1, -1, -1, -1, 476, - 173, -1, 479, 480, 481, -1, 483, 484, 485, 486, - 487, 488, -1, -1, 8, -1, 189, 11, -1, -1, - -1, 194, 16, 17, 18, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, 216, 217, -1, -1, 41, -1, -1, - -1, -1, -1, -1, 48, -1, -1, 230, -1, -1, - -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, - -1, 16, 17, 18, -1, -1, -1, -1, -1, 73, - -1, -1, 476, -1, -1, 479, 480, 481, 33, 483, - 484, 485, 486, 487, 488, 268, 41, -1, 271, -1, - -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, - -1, 8, 285, -1, 11, 288, -1, -1, -1, 16, - 17, 18, -1, -1, -1, -1, -1, -1, 73, -1, - -1, -1, -1, -1, -1, -1, 33, -1, -1, 36, - -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, - -1, 48, -1, 8, -1, -1, 11, -1, -1, -1, - -1, 16, 17, 18, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 168, -1, 73, -1, 33, 173, - -1, 36, -1, -1, -1, -1, 41, -1, -1, -1, - -1, -1, -1, 48, -1, 189, -1, -1, -1, 8, - 194, -1, 11, 376, -1, -1, -1, 16, 17, 18, - -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, - -1, -1, 216, 217, 33, -1, -1, -1, 173, -1, - -1, -1, 41, -1, -1, -1, 230, -1, -1, 48, - -1, -1, -1, -1, 189, -1, -1, -1, -1, 194, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, - -1, 216, 217, -1, 268, -1, 173, 271, -1, -1, - -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, - -1, 285, 189, -1, 288, -1, -1, 194, -1, -1, - -1, -1, -1, 476, -1, -1, 479, 480, 481, -1, - 483, 484, 485, 486, 487, 488, -1, -1, 173, 216, - 217, -1, -1, 268, -1, -1, 271, -1, -1, -1, - -1, -1, -1, 230, 189, -1, -1, -1, -1, 194, - 285, -1, -1, 288, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 216, 217, -1, 173, -1, -1, -1, -1, -1, - -1, 268, -1, -1, 271, 230, -1, -1, -1, -1, - 189, -1, 376, -1, 8, 194, -1, 11, 285, -1, - -1, 288, 16, 17, 18, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 216, 217, 33, - -1, -1, -1, 268, -1, -1, 271, 41, -1, -1, - -1, 230, -1, -1, 48, -1, -1, -1, -1, -1, - 285, 376, 8, 288, -1, 11, -1, -1, -1, -1, - 16, 17, 18, -1, -1, -1, -1, -1, -1, 73, - -1, -1, -1, -1, -1, -1, -1, 33, -1, 268, - -1, -1, 271, 408, -1, 41, -1, -1, -1, -1, - -1, -1, 48, -1, -1, -1, 285, -1, -1, 376, - -1, -1, 476, -1, -1, 479, 480, 481, -1, 483, - 484, 485, 486, 487, 488, -1, -1, 73, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, - -1, 376, -1, 16, 17, 18, -1, -1, -1, -1, - -1, 476, -1, -1, 479, 480, 481, -1, 483, 484, - 485, 486, 487, 488, -1, -1, -1, -1, 41, 173, - -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 189, -1, 376, -1, -1, - 194, -1, -1, -1, -1, -1, -1, -1, -1, 476, - 73, -1, 479, 480, 481, -1, 483, 484, 485, 486, - 487, 488, 216, 217, -1, -1, -1, 173, -1, -1, - -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, - -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, - -1, 476, -1, -1, 479, 480, 481, -1, 483, 484, - 485, 486, 487, 488, -1, -1, -1, -1, -1, -1, - 216, 217, -1, -1, 268, -1, -1, 271, -1, -1, - -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, - -1, 285, -1, -1, 288, -1, -1, 476, -1, -1, - 479, 480, 481, -1, 483, 484, 485, 486, 487, 488, - 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 268, -1, -1, 271, 189, -1, -1, -1, - -1, 194, -1, -1, -1, -1, -1, -1, -1, 285, - -1, -1, 288, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 216, 217, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 230, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 376, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 268, -1, -1, 271, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, - 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 476, -1, -1, 479, 480, 481, -1, 483, - 484, 485, 486, 487, 488, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 476, -1, -1, 479, 480, 481, -1, 483, 484, 485, - 486, 487, 488, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3, -1, 5, 476, -1, -1, 479, 480, 481, -1, - 483, 484, 485, 486, 487, 488, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, 217, 218, 219, 220, 221, + 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, -1, -1, -1, -1, -1, + -1, -1, 484, 485, -1, -1, -1, -1, -1, -1, + -1, 493, -1, -1, -1, -1, -1, -1, 500, 501, + 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, + -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, + 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, + -1, -1, 35, -1, -1, 38, 39, -1, 41, 42, + 43, 44, 45, 46, 47, -1, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, + -1, 74, -1, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, -1, 168, -1, 170, 171, 172, - -1, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, + 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, + 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, + -1, 144, -1, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, + -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, 225, 226, 227, -1, 229, -1, 231, 232, + 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, + 213, -1, 215, -1, -1, 218, 219, 220, 221, 222, + 223, 224, -1, -1, 227, 228, 229, -1, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, + 273, 274, 275, 276, 277, 278, 279, -1, 281, 282, + -1, -1, 285, 286, 287, -1, -1, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, + 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, + -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, -1, 349, 350, 351, 352, + 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, + 363, 364, -1, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 393, 394, 395, 396, 397, -1, 399, 400, -1, 402, + 403, 404, 405, 406, 407, 408, -1, 410, 411, -1, + -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, 448, 449, 450, -1, -1, + 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, -1, 45, 46, 47, 48, 49, - -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - 80, 81, -1, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, - 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, -1, 168, -1, - 170, 171, 172, -1, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, -1, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, -1, -1, 218, -1, - 220, 221, 222, 223, 224, 225, 226, 227, -1, 229, - -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 473, 474, 475, 476, -1, -1, -1, -1, -1, -1, + -1, 484, 485, 3, -1, -1, -1, -1, 491, -1, + 493, -1, -1, -1, -1, 498, -1, 500, 501, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, 36, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, 169, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, 219, + 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, -1, 263, 264, 265, 266, 267, 268, 269, - 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 260, 261, 262, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, -1, 349, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, 403, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 3, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, -1, 45, 46, - 47, 48, 49, -1, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, - 77, 78, 79, 80, 81, -1, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, - 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - -1, 168, -1, 170, 171, 172, -1, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, - -1, 218, -1, 220, 221, 222, 223, 224, 225, 226, - 227, -1, 229, -1, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, - 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, -1, 293, -1, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 3, + 470, 471, 472, 473, 474, 475, 476, -1, -1, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 494, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, -1, 227, 228, 229, 230, -1, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + 284, 285, 286, 287, -1, -1, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, 448, 449, 450, -1, -1, 453, + -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, -1, 3, 479, 5, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, + 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + 59, -1, 61, 62, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, -1, 74, -1, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, + 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, + 159, 160, 161, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, 174, -1, 176, -1, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, + 199, 200, -1, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, -1, 227, 228, + 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, -1, + 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, 284, 285, 286, 287, -1, + -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, + 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, -1, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, -1, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, + 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + 59, -1, 61, 62, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, -1, 74, -1, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, + 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, + 159, 160, 161, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, 174, -1, 176, -1, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, + 199, 200, -1, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, -1, -1, 227, 228, + 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, -1, + 269, 270, 271, 272, -1, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, + -1, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, + 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, -1, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, -1, 3, + 4, 5, -1, -1, -1, 9, -1, -1, -1, -1, + -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, -1, 3, -1, -1, -1, -1, -1, + 484, 485, 486, -1, -1, -1, -1, -1, -1, 493, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + 29, 30, 31, 32, -1, -1, -1, -1, -1, 38, + 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, + 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, + 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, + 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, + 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, + -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, + 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, + 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, + -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, + 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, + 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, + -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, + 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, -1, 372, 373, 374, 375, 376, -1, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, -1, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, -1, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, -1, 447, 448, + 449, 450, -1, -1, 453, -1, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, -1, 3, + 479, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, - 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, - 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, - -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, - -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, -1, 382, 383, + 364, 365, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, 402, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - 434, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, 445, 446, 447, 448, 449, -1, -1, 452, -1, + 394, 395, 396, 397, -1, 399, 400, 401, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, - -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, 74, -1, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, -1, 94, 95, 96, 97, -1, -1, -1, - 101, -1, -1, -1, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, - 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, - -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, - -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, - 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, - 171, 172, 173, 174, -1, 176, -1, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, - -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, - -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, -1, 269, 270, - 271, 272, -1, 274, 275, 276, 277, 278, 279, -1, - 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, - 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, 402, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, 445, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 3, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, - 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, - 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, - 58, 59, -1, -1, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, -1, -1, 75, 76, 77, - 78, 79, 80, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, - -1, 159, 160, 161, 162, -1, 164, 165, 166, -1, - -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, - 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, - -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, - -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, -1, 371, 372, 373, 374, 375, -1, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - -1, 419, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, 431, 432, 433, -1, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, -1, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, - 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - 165, 166, -1, -1, -1, 170, 171, 172, -1, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, 230, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, 428, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 3, -1, 5, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, - -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, - 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, - 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, - 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, - 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, - -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, - -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, - 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, - 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, - 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, - 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, - 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, - -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, - 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, - 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, - 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, - 282, 283, -1, 285, 286, 287, -1, -1, 290, 291, - -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, - 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, -1, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, - 372, 373, 374, 375, -1, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - -1, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, -1, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 3, -1, 5, -1, -1, -1, + 474, 475, 476, -1, 3, 479, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, + 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, + 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, + 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, + 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, + 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, + -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, + 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, + 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, + -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, + 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, + 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, + -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, + 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, -1, 372, 373, 374, 375, 376, -1, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, -1, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, -1, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, -1, 447, 448, + 449, 450, -1, -1, 453, -1, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, -1, 3, + 479, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, -1, 3, -1, 5, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, + 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, + 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, + 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, + 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, + 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, + 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, + 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, + -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, + 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, + 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, + -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, + 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, + 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, + 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, + -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, + 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, + 369, 370, -1, 372, 373, 374, 375, 376, -1, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, -1, 402, -1, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, -1, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, -1, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, -1, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 29, 30, 31, 32, -1, -1, -1, -1, -1, 38, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, @@ -12619,213 +11571,24 @@ static const yytype_int16 yycheck[] = -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, -1, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, -1, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, -1, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, + 369, 370, -1, 372, 373, 374, 375, 376, -1, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, -1, 402, -1, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, 416, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, -1, -1, 437, 438, + 439, 440, 441, 442, 443, -1, 445, -1, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 3, -1, 5, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, - -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, - 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, - 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, - 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, - -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, - 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, - 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, - 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - -1, 157, -1, 159, 160, 161, 162, -1, 164, -1, - 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, - 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, - 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, - 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, - -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, - -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, - -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, - 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, - 276, 277, 278, 279, -1, 281, 282, -1, 284, 285, - 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, -1, 371, 372, 373, 374, 375, - -1, 377, 378, 379, 380, -1, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, -1, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, - 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, -1, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, -1, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, -1, -1, 76, 77, 78, 79, 80, 81, -1, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, - -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, -1, -1, 227, -1, 229, -1, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, 284, 285, 286, 287, -1, -1, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, -1, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, -1, 401, -1, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, -1, 446, 447, 448, 449, -1, -1, 452, - -1, -1, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, 31, 32, -1, -1, -1, -1, -1, 38, 39, - -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, - -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, - -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, - 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, - -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, - 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, - 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, - -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, - 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, -1, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - -1, 371, 372, 373, 374, 375, -1, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, -1, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, -1, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, -1, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 3, -1, 5, -1, + 469, 470, 471, 472, 473, 474, 475, 476, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, - -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, - 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 72, -1, -1, -1, 76, - 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, - 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, - -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, - -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, - 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, - -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, - -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, - 187, 188, -1, 190, 191, 192, 193, -1, 195, 196, - 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, - 207, 208, 209, 210, 211, -1, 213, -1, 215, -1, - -1, 218, -1, 220, 221, 222, 223, 224, -1, -1, - 227, -1, 229, -1, -1, 232, 233, 234, -1, -1, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, - 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, - 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, - 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, - 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, - 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, - 367, 368, 369, -1, 371, 372, 373, 374, 375, -1, - 377, 378, 379, 380, -1, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - -1, 398, 399, 400, 401, -1, 403, 404, 405, 406, - 407, -1, 409, 410, -1, -1, 413, 414, 415, 416, - 417, -1, 419, 420, 421, 422, 423, 424, 425, 426, - -1, -1, 429, 430, 431, 432, 433, -1, -1, 436, - 437, 438, 439, 440, 441, 442, -1, 444, -1, 446, - 447, 448, 449, -1, -1, 452, -1, -1, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 3, - 4, -1, -1, -1, -1, 9, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + -1, -1, -1, -1, 493, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, @@ -12855,25 +11618,73 @@ static const yytype_int16 yycheck[] = -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, -1, 349, 350, 351, 352, 353, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, - 374, 375, -1, 377, 378, 379, 380, -1, 382, 383, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, -1, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - -1, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, -1, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 474, 475, 476, -1, -1, -1, -1, 3, 4, 5, + -1, -1, 8, 9, -1, -1, -1, -1, -1, 493, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, -1, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, -1, 151, 152, 153, 154, -1, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, -1, -1, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, -1, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, -1, 292, 293, 294, -1, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, -1, 310, 311, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + -1, 417, -1, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 473, 474, 475, + 476, -1, 3, -1, 480, 481, 482, 8, 484, 485, + 486, 487, 488, 489, -1, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, @@ -12903,23 +11714,316 @@ static const yytype_int16 yycheck[] = 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, -1, 349, 350, + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, -1, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, + 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, + -1, 372, 373, 374, 375, 376, -1, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + -1, 402, -1, 404, 405, 406, 407, 408, -1, 410, + 411, -1, -1, 414, 415, 416, 417, 418, -1, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, -1, -1, 437, 438, 439, 440, + 441, 442, 443, -1, 445, -1, 447, 448, 449, 450, + -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 3, -1, 5, -1, -1, + 471, 472, 473, 474, 475, 476, -1, -1, -1, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, 8, + -1, -1, 11, -1, -1, -1, -1, 16, 17, 18, + -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, + 11, -1, -1, -1, 33, 16, 17, 18, -1, -1, + -1, -1, 41, -1, -1, -1, -1, -1, -1, 48, + -1, -1, 33, -1, -1, -1, 8, -1, -1, 11, + 41, -1, -1, -1, 16, 17, 18, 48, -1, -1, + -1, -1, -1, -1, 73, 8, -1, -1, 11, -1, + -1, 33, -1, 16, 17, 18, -1, -1, -1, 41, + -1, -1, 73, -1, -1, -1, 48, -1, -1, -1, + 33, -1, -1, -1, -1, -1, -1, -1, 41, -1, + -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, + -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, -1, -1, -1, -1, 16, 17, 18, -1, + -1, -1, -1, -1, 173, -1, 8, -1, -1, 11, + -1, -1, -1, 33, 16, 17, 18, -1, -1, -1, + 189, 41, 173, -1, -1, 194, -1, 23, 48, -1, + -1, 33, -1, 29, -1, -1, -1, -1, 189, 41, + 36, -1, -1, 194, -1, -1, 48, 216, 217, -1, + -1, 173, -1, 73, -1, -1, -1, -1, -1, 55, + -1, 230, -1, -1, -1, 216, 217, 189, -1, -1, + 173, 73, 194, -1, -1, -1, -1, -1, -1, 230, + -1, -1, -1, -1, -1, -1, 189, -1, -1, -1, + -1, 194, -1, -1, 216, 217, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, -1, -1, 230, -1, + 106, -1, -1, 216, 217, -1, 285, 268, -1, 288, + 271, -1, -1, -1, -1, -1, -1, 230, -1, -1, + -1, -1, -1, -1, 285, -1, -1, 288, -1, 135, + -1, -1, -1, -1, -1, -1, 268, -1, -1, 271, + -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 285, -1, 268, 288, -1, 271, 189, + -1, 173, -1, -1, 194, -1, -1, -1, -1, -1, + -1, -1, 285, -1, -1, 288, -1, 189, -1, -1, + -1, -1, 194, -1, -1, -1, 216, 217, -1, -1, + 196, -1, -1, -1, -1, -1, -1, -1, 377, -1, + 230, -1, -1, -1, 216, 217, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 377, -1, 230, -1, + -1, 8, -1, -1, 11, -1, -1, -1, -1, 16, + 17, 18, -1, -1, -1, -1, -1, -1, 268, -1, + 246, 271, -1, -1, -1, 377, 33, -1, 254, -1, + -1, -1, -1, -1, 41, 285, 268, -1, 288, 271, + 266, 48, -1, -1, 377, -1, -1, -1, -1, -1, + -1, -1, -1, 285, -1, -1, 288, -1, -1, -1, + -1, 287, -1, -1, -1, -1, 73, -1, -1, -1, + -1, 297, -1, -1, -1, -1, -1, -1, 477, -1, + -1, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, -1, -1, -1, -1, 494, 477, -1, -1, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, -1, + -1, -1, 338, 494, -1, -1, 342, -1, 344, -1, + -1, -1, -1, -1, -1, 477, -1, 377, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, -1, -1, + 366, -1, 494, -1, 477, 377, 372, 480, 481, 482, + -1, 484, 485, 486, 487, 488, 489, -1, -1, 8, + 386, 494, 11, -1, -1, -1, 173, 16, 17, 18, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 189, -1, 33, -1, -1, 194, -1, -1, + -1, -1, 41, -1, -1, -1, -1, -1, -1, 48, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, + 217, -1, -1, 439, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 230, 73, -1, -1, 477, -1, -1, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + -1, -1, -1, -1, 494, 477, -1, -1, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, -1, -1, + -1, 268, 494, -1, 271, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, + -1, 288, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 189, -1, -1, -1, -1, 194, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 216, 217, -1, + 377, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 285, -1, -1, 288, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 477, -1, -1, 480, 481, 482, -1, 484, 485, 486, + 487, 488, 489, -1, -1, -1, -1, 494, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 377, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 477, 3, + -1, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, -1, -1, 492, -1, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, 168, -1, 170, 171, 172, -1, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, 225, 226, 227, -1, 229, -1, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, -1, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, + -1, -1, 486, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, + 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, 4, 5, + -1, -1, -1, 9, -1, -1, 486, -1, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, + 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, + 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, + -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, + -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, + 276, 277, 278, 279, -1, 281, 282, 283, -1, 285, + 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, 4, 5, -1, -1, -1, 9, 484, 485, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, + 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, -1, -1, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, 4, 5, -1, -1, + -1, 9, 484, 485, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, @@ -12933,7 +12037,7 @@ static const yytype_int16 yycheck[] = 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, @@ -12946,82 +12050,475 @@ static const yytype_int16 yycheck[] = 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, -1, + 8, -1, -1, 11, -1, -1, 484, 485, 16, 17, + 18, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, -1, -1, -1, 33, 16, 17, 18, 37, + -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, + 48, -1, -1, 33, -1, -1, -1, 8, -1, -1, + 11, 41, -1, -1, -1, 16, 17, 18, 48, -1, + -1, -1, -1, -1, -1, 73, 8, -1, -1, 11, + -1, -1, 33, -1, 16, 17, 18, -1, -1, -1, + 41, -1, -1, 73, -1, -1, -1, 48, -1, -1, + -1, 33, -1, -1, 36, -1, -1, -1, -1, 41, + -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, + -1, -1, 73, -1, -1, -1, 124, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, -1, 11, -1, -1, -1, -1, 16, 17, 18, + -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, + -1, -1, -1, 163, 33, -1, -1, -1, 168, -1, + -1, 189, 41, 173, -1, -1, 194, -1, -1, 48, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 189, + -1, 162, -1, -1, 194, -1, -1, -1, 216, 217, + -1, -1, 173, -1, 73, -1, -1, -1, -1, -1, + -1, -1, 230, -1, -1, -1, 216, 217, 189, -1, + -1, 173, -1, 194, -1, -1, -1, -1, -1, -1, + 230, -1, -1, -1, -1, -1, -1, 189, -1, -1, + -1, -1, 194, -1, -1, 216, 217, -1, -1, -1, + 268, -1, -1, 271, -1, -1, -1, -1, -1, 230, + -1, -1, -1, -1, 216, 217, -1, 285, 268, -1, + 288, 271, -1, -1, -1, -1, -1, -1, 230, -1, + -1, -1, -1, -1, -1, 285, -1, -1, 288, -1, + -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, + 271, -1, -1, -1, 173, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 285, -1, 268, 288, 8, 271, + 189, 11, -1, -1, -1, 194, 16, 17, 18, -1, + -1, -1, -1, 285, -1, -1, 288, -1, -1, -1, + 311, -1, -1, 33, -1, -1, 36, 216, 217, -1, + -1, 41, -1, -1, -1, -1, -1, -1, 48, 377, + -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 377, -1, -1, + -1, -1, 8, 73, -1, 11, -1, -1, -1, -1, + 16, 17, 18, -1, -1, -1, -1, -1, -1, 268, + -1, -1, 271, -1, -1, -1, 377, 33, -1, -1, + -1, -1, -1, -1, -1, 41, 285, -1, 436, 288, + -1, -1, 48, -1, -1, 377, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 306, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 73, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 477, + -1, -1, 480, 481, 482, -1, 484, 485, 486, 487, + 488, 489, -1, -1, -1, -1, -1, 477, -1, -1, + 480, 481, 482, 173, 484, 485, 486, 487, 488, 489, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 189, + -1, -1, -1, -1, 194, -1, 477, -1, 377, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, -1, + -1, -1, -1, -1, -1, 477, 216, 217, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, -1, -1, + 230, -1, 168, -1, -1, -1, -1, 173, -1, 8, + -1, -1, 11, -1, -1, -1, -1, 16, 17, 18, + -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, + -1, -1, -1, -1, 33, -1, -1, 36, 268, -1, + -1, 271, 41, -1, -1, -1, -1, -1, -1, 48, + 216, 217, -1, -1, -1, 285, -1, -1, 288, -1, + -1, -1, -1, -1, 230, -1, -1, -1, 477, -1, + -1, 480, 481, 482, 73, 484, 485, 486, 487, 488, + 489, -1, -1, -1, 8, -1, -1, 11, -1, -1, + -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, + -1, -1, 268, -1, -1, 271, -1, -1, -1, 33, + -1, -1, 36, -1, -1, -1, -1, 41, -1, 285, + -1, -1, 288, 8, 48, -1, 11, -1, -1, -1, + -1, 16, 17, 18, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 377, 33, 73, + -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, + -1, -1, -1, 48, -1, -1, -1, -1, 8, -1, + -1, 11, -1, -1, 173, -1, 16, 17, 18, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, + 189, -1, -1, 33, -1, 194, -1, -1, -1, -1, + -1, 41, -1, -1, -1, -1, -1, -1, 48, -1, + -1, 377, -1, -1, -1, -1, -1, 216, 217, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 230, -1, 73, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 477, -1, 173, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + -1, -1, -1, -1, -1, 189, -1, -1, -1, 268, + 194, -1, 271, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 285, -1, 173, 288, + -1, -1, 216, 217, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 189, -1, 230, -1, -1, 194, + -1, 477, -1, -1, 480, 481, 482, -1, 484, 485, + 486, 487, 488, 489, -1, -1, -1, -1, -1, -1, + -1, 216, 217, 173, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 268, 230, -1, 271, -1, 189, + -1, -1, -1, -1, 194, -1, -1, -1, -1, -1, + -1, 285, 8, -1, 288, 11, -1, -1, -1, -1, + 16, 17, 18, -1, -1, -1, 216, 217, 377, -1, + -1, -1, -1, 268, -1, -1, 271, 33, -1, -1, + 230, -1, -1, -1, -1, 41, -1, -1, -1, -1, + 285, 8, 48, 288, 11, -1, -1, -1, -1, 16, + 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, 73, 268, -1, + -1, 271, -1, -1, 41, -1, -1, -1, -1, -1, + -1, 48, -1, -1, -1, 285, -1, -1, 288, -1, + -1, -1, -1, 377, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 477, -1, + -1, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, -1, 377, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, + 16, 17, 18, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 409, -1, -1, 173, -1, -1, + -1, -1, -1, -1, -1, 41, -1, 377, -1, -1, + -1, 8, 48, 189, 11, -1, -1, -1, 194, 16, + 17, 18, -1, 477, -1, -1, 480, 481, 482, -1, + 484, 485, 486, 487, 488, 489, 173, 73, -1, -1, + 216, 217, -1, -1, 41, -1, -1, -1, -1, -1, + -1, 48, 189, -1, 230, -1, -1, 194, -1, -1, + -1, -1, 477, -1, -1, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, -1, 73, -1, -1, 216, + 217, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 268, 230, -1, 271, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 477, -1, 285, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 268, -1, -1, 271, -1, -1, 173, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, + -1, 288, -1, 189, -1, -1, -1, -1, 194, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, + 216, 217, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 189, -1, 230, -1, -1, 194, -1, -1, + -1, 377, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, + 217, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 268, 230, -1, 271, -1, -1, -1, -1, + 377, -1, -1, -1, -1, -1, -1, -1, -1, 285, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 271, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 477, -1, -1, 480, 481, 482, -1, 484, 485, + 486, 487, 488, 489, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 477, 377, -1, 480, 481, 482, -1, 484, 485, 486, + 487, 488, 489, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 377, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 477, -1, -1, 480, 481, 482, -1, 484, 485, + 486, 487, 488, 489, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3, -1, 5, + 477, -1, -1, 480, 481, 482, -1, 484, 485, 486, + 487, 488, 489, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, + 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, 168, -1, 170, 171, 172, -1, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, 225, + 226, 227, -1, 229, -1, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + -1, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, 168, -1, 170, 171, + 172, -1, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, 225, 226, 227, -1, 229, -1, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, 268, 269, 270, -1, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, -1, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, + 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + 168, -1, 170, 171, 172, -1, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, 225, 226, 227, + -1, 229, -1, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, -1, 371, 372, 373, 374, 375, -1, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - -1, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, -1, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, -1, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, -1, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 3, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, -1, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 3, -1, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, 61, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, 74, -1, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, 101, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, + 230, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, -1, 269, + 270, 271, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, 403, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, + 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, 75, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, -1, 159, 160, 161, 162, -1, 164, 165, + 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, + -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, + -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, + 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, - 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, - -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, @@ -13029,13 +12526,13 @@ static const yytype_int16 yycheck[] = 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, - 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 162, -1, 164, 165, 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, - 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 222, 223, 224, -1, -1, 227, -1, 229, 230, -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, @@ -13044,70 +12541,165 @@ static const yytype_int16 yycheck[] = 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, - 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, -1, 349, 350, 351, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, - 372, 373, 374, 375, -1, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - -1, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, -1, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, -1, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 3, -1, 5, -1, -1, -1, + 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, - 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, - 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, - 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, - 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, - -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, - 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, - 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, - 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, - 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, - -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, - 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, - 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, - -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, - 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, - 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, - 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, - -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, - 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, -1, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, -1, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, -1, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 3, -1, 5, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, 31, 32, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, + 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, 284, 285, 286, 287, -1, -1, + 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, @@ -13135,74 +12727,169 @@ static const yytype_int16 yycheck[] = 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, - 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 276, 277, 278, 279, -1, 281, 282, -1, 284, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, -1, 371, 372, 373, 374, 375, - -1, 377, 378, 379, 380, -1, 382, 383, 384, 385, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, -1, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, - 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, -1, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, -1, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, -1, -1, 76, 77, 78, 79, 80, 81, -1, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, - -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, -1, -1, 227, -1, 229, -1, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, -1, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, -1, 401, -1, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, -1, 446, 447, 448, 449, -1, -1, 452, - -1, -1, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 3, -1, -1, -1, -1, -1, -1, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, + 32, -1, -1, -1, -1, -1, 38, 39, -1, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, + 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, + 4, -1, -1, -1, -1, 9, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, @@ -13234,69 +12921,164 @@ static const yytype_int16 yycheck[] = 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, -1, 349, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - -1, 371, 372, 373, 374, 375, -1, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, -1, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, -1, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, -1, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 3, -1, 5, -1, + 470, 471, 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, - -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, - 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 72, -1, -1, -1, 76, - 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, - 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, - -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, - -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, - 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, - -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, - -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, - 187, 188, -1, 190, 191, 192, 193, -1, 195, 196, - 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, - 207, 208, 209, 210, 211, -1, 213, -1, 215, -1, - -1, 218, -1, 220, 221, 222, 223, 224, -1, -1, - 227, -1, 229, -1, -1, 232, 233, 234, -1, -1, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, - 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, - 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, - 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, - 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, - 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, - 367, 368, 369, -1, 371, 372, 373, 374, 375, -1, - 377, 378, 379, 380, -1, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - -1, 398, 399, -1, 401, -1, 403, 404, 405, 406, - 407, -1, 409, 410, -1, -1, 413, 414, 415, 416, - 417, -1, 419, 420, 421, 422, 423, 424, 425, 426, - -1, -1, 429, 430, 431, 432, 433, -1, -1, 436, - 437, 438, 439, 440, 441, 442, -1, 444, -1, 446, - 447, 448, 449, -1, -1, 452, -1, -1, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 3, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, + 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, + 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, -1, 159, 160, 161, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, + -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, + -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, + 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, + -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, + 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, @@ -13328,167 +13110,120 @@ static const yytype_int16 yycheck[] = -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, -1, 349, 350, 351, 352, 353, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, - 374, 375, -1, 377, 378, 379, 380, -1, 382, 383, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, -1, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - -1, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, -1, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 3, -1, 5, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, - 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, - -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, -1, -1, 76, 77, 78, 79, 80, - 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, - 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, - -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, - -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, - 161, 162, -1, 164, -1, 166, -1, -1, -1, 170, - 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, -1, 190, - 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, - -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, - 211, -1, 213, -1, 215, -1, -1, 218, -1, 220, - 221, 222, 223, 224, -1, -1, 227, -1, 229, -1, - -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, -1, 263, 264, 265, 266, 267, -1, 269, 270, - -1, 272, -1, 274, 275, 276, 277, 278, 279, -1, - 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, - 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, - 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, -1, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, -1, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 3, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, 36, -1, - 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, - 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, - 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, - 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, - -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, - 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, - -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, - -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, -1, 371, 372, 373, 374, 375, -1, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - -1, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, -1, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, -1, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 3, -1, + 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, + 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, - 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, 36, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, -1, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 3, -1, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, + 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, + 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, -1, 159, 160, 161, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, + -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, + -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, + 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, @@ -13518,73 +13253,168 @@ static const yytype_int16 yycheck[] = -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, -1, 349, 350, 351, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, - 372, 373, 374, 375, -1, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - -1, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, -1, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, -1, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 3, -1, -1, -1, -1, -1, + 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, - 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, - 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, - 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, - 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, - -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, - 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, - 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, - 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, - 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, - -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, - 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, - 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, - -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, - 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, - 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, - 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, - -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, - 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, -1, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, -1, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, -1, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 3, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, 5, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, + 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, - -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 36, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, @@ -13612,70 +13442,165 @@ static const yytype_int16 yycheck[] = 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, -1, 371, 372, 373, 374, 375, - -1, 377, 378, 379, 380, -1, 382, 383, 384, 385, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, -1, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, - 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, -1, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, -1, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, -1, -1, 76, 77, 78, 79, 80, 81, -1, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, - -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, -1, -1, 227, -1, 229, -1, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, -1, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, -1, 401, -1, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, -1, 446, 447, 448, 449, -1, -1, 452, - -1, -1, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 3, -1, -1, -1, -1, -1, -1, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + -1, -1, -1, -1, 36, -1, 38, 39, -1, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, + 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, -1, 5, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, @@ -13707,69 +13632,164 @@ static const yytype_int16 yycheck[] = 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, -1, 349, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - -1, 371, 372, 373, 374, 375, -1, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, -1, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, -1, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, -1, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 3, -1, -1, -1, + 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, - -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, - 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 72, -1, -1, -1, 76, - 77, 78, 79, 80, 81, -1, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, -1, -1, 95, 96, - 97, -1, -1, -1, -1, -1, -1, -1, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, - -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, - -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, - 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, - -1, -1, -1, 170, 171, 172, -1, 174, -1, 176, - -1, 178, 179, 180, -1, 182, 183, 184, 185, 186, - 187, 188, -1, 190, 191, 192, 193, -1, 195, 196, - 197, 198, 199, 200, -1, 202, -1, 204, 205, 206, - 207, 208, 209, 210, 211, -1, 213, -1, 215, -1, - -1, 218, -1, 220, 221, 222, 223, 224, -1, -1, - 227, -1, 229, -1, -1, 232, 233, 234, -1, -1, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, -1, 263, 264, 265, 266, - 267, -1, 269, 270, -1, 272, -1, 274, 275, 276, - 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, - 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, - 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, - 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, - 367, 368, 369, -1, 371, 372, 373, 374, 375, -1, - 377, 378, 379, 380, -1, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - -1, 398, 399, -1, 401, -1, 403, 404, 405, 406, - 407, -1, 409, 410, -1, -1, 413, 414, 415, 416, - 417, -1, 419, 420, 421, 422, 423, 424, 425, 426, - -1, -1, 429, 430, 431, 432, 433, -1, -1, 436, - 437, 438, 439, 440, 441, 442, -1, 444, -1, 446, - 447, 448, 449, -1, -1, 452, -1, -1, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 3, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, + 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, + 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, -1, 159, 160, 161, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, + -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, + -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, + 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, + 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, @@ -13801,168 +13821,121 @@ static const yytype_int16 yycheck[] = -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, - 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, -1, 346, 347, -1, 349, 350, 351, 352, 353, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - -1, 365, 366, 367, 368, 369, -1, 371, 372, 373, - 374, 375, -1, 377, 378, 379, 380, -1, 382, 383, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, -1, 398, 399, -1, 401, -1, 403, - 404, 405, 406, 407, -1, 409, 410, -1, -1, 413, - 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, - 424, 425, 426, -1, -1, 429, 430, 431, 432, 433, - -1, -1, 436, 437, 438, 439, 440, 441, 442, -1, - 444, -1, 446, 447, 448, 449, -1, -1, 452, -1, - -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, - -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, - 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, - -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, -1, -1, 76, 77, 78, 79, 80, - 81, -1, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, -1, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, -1, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, -1, 116, -1, 118, 119, 120, - 121, 122, 123, -1, 125, 126, 127, 128, 129, -1, - -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, - -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, -1, 157, -1, 159, 160, - 161, 162, -1, 164, -1, 166, -1, -1, -1, 170, - 171, 172, -1, 174, -1, 176, -1, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, -1, 190, - 191, 192, 193, -1, 195, 196, 197, 198, 199, 200, - -1, 202, -1, 204, 205, 206, 207, 208, 209, 210, - 211, -1, 213, -1, 215, -1, -1, 218, -1, 220, - 221, 222, 223, 224, -1, -1, 227, -1, 229, -1, - -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, -1, 263, 264, 265, 266, 267, -1, 269, 270, - -1, 272, -1, 274, 275, 276, 277, 278, 279, -1, - 281, 282, -1, -1, 285, 286, 287, -1, -1, 290, - 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, - 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, -1, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, -1, 398, 399, -1, - 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, 415, 416, 417, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - 441, 442, -1, 444, -1, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 3, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, - 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, - 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, - 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, - 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, - 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, - 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, - 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, - -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, - -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, - 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, - 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, - 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, - -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, - -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, - 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, - -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, - 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, - -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, -1, 365, 366, 367, - 368, 369, -1, 371, 372, 373, 374, 375, -1, 377, - 378, 379, 380, -1, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, - 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, - -1, 409, 410, -1, -1, 413, 414, 415, 416, 417, - -1, 419, 420, 421, 422, 423, 424, 425, 426, -1, - -1, 429, 430, 431, 432, 433, -1, -1, 436, 437, - 438, 439, 440, 441, 442, -1, 444, -1, 446, 447, - 448, 449, -1, -1, 452, -1, -1, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 3, -1, + 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, + 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, - 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, - -1, 36, -1, 38, 39, -1, 41, 42, 43, -1, - 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, - 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, - 65, 66, -1, 68, 69, 70, 71, 72, -1, -1, - -1, 76, 77, 78, 79, 80, 81, -1, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, -1, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, -1, -1, 132, 133, 134, - 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, -1, 157, -1, 159, 160, 161, 162, -1, 164, - -1, 166, -1, -1, -1, 170, 171, 172, -1, 174, - -1, 176, -1, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, -1, 190, 191, 192, 193, -1, - 195, 196, 197, 198, 199, 200, -1, 202, -1, 204, - 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, - 215, -1, -1, 218, -1, 220, 221, 222, 223, 224, - -1, -1, 227, -1, 229, -1, -1, 232, 233, 234, - -1, -1, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, - 265, 266, 267, -1, 269, 270, -1, 272, -1, 274, - 275, 276, 277, 278, 279, -1, 281, 282, -1, -1, - 285, 286, 287, -1, -1, 290, 291, -1, 293, -1, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - -1, 346, 347, -1, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, -1, - 365, 366, 367, 368, 369, -1, -1, 372, 373, 374, - 375, -1, 377, 378, 379, 380, -1, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, -1, 398, 399, -1, 401, -1, 403, 404, - 405, 406, 407, -1, 409, 410, -1, -1, 413, 414, - 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, - 425, 426, -1, -1, 429, 430, 431, 432, 433, -1, - -1, 436, 437, 438, 439, 440, 441, 442, -1, 444, - -1, 446, 447, 448, 449, -1, -1, 452, -1, -1, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, + 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, + 66, -1, 68, 69, 70, 71, 72, -1, -1, -1, + 76, 77, 78, 79, 80, 81, -1, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, -1, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, + 116, -1, 118, 119, 120, 121, 122, 123, -1, 125, + 126, 127, 128, 129, -1, -1, 132, 133, 134, 135, + 136, -1, 138, 139, 140, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + -1, 157, -1, 159, 160, 161, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, -1, 174, -1, + 176, -1, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, -1, 190, 191, 192, 193, -1, 195, + 196, 197, 198, 199, 200, -1, 202, -1, 204, 205, + 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, + -1, -1, 218, -1, 220, 221, 222, 223, 224, -1, + -1, 227, -1, 229, -1, -1, 232, 233, 234, -1, + -1, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, -1, 263, 264, 265, + 266, 267, -1, 269, 270, -1, 272, -1, 274, 275, + 276, 277, 278, 279, -1, 281, 282, -1, -1, 285, + 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, - -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, + -1, -1, -1, -1, 36, -1, 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, @@ -13991,69 +13964,164 @@ static const yytype_int16 yycheck[] = -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, -1, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, -1, 346, 347, -1, 349, 350, 351, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, - 372, 373, 374, 375, -1, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, -1, 398, 399, -1, 401, - -1, 403, 404, 405, 406, 407, -1, 409, 410, -1, - -1, 413, 414, 415, 416, 417, -1, 419, 420, 421, - 422, 423, 424, 425, 426, -1, -1, 429, 430, 431, - 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, - 442, -1, 444, -1, 446, 447, 448, 449, -1, -1, - 452, -1, -1, 455, 456, 457, 458, 459, 460, 461, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + -1, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 3, -1, -1, -1, -1, -1, + 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, - 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, - 49, -1, 51, 52, -1, 54, 55, 56, 57, 58, - 59, -1, -1, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, -1, -1, -1, 76, 77, 78, - 79, 80, 81, -1, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, -1, -1, 95, 96, 97, -1, - -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, -1, 116, -1, 118, - 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, - 129, -1, -1, 132, 133, 134, 135, 136, -1, 138, - 139, 140, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, -1, 157, -1, - 159, 160, 161, 162, -1, 164, -1, 166, -1, -1, - -1, 170, 171, 172, -1, 174, -1, 176, -1, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - -1, 190, 191, 192, 193, -1, 195, 196, 197, 198, - 199, 200, -1, 202, -1, 204, 205, 206, 207, 208, - 209, 210, 211, -1, 213, -1, 215, -1, -1, 218, - -1, 220, 221, 222, 223, 224, -1, -1, 227, -1, - 229, -1, -1, 232, 233, 234, -1, -1, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, -1, 263, 264, 265, 266, 267, -1, - 269, 270, -1, 272, -1, 274, 275, 276, 277, 278, - 279, -1, 281, 282, -1, -1, 285, 286, 287, -1, - -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, - 309, 310, 311, 312, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, -1, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, -1, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, - 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, 415, 416, 417, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, 441, 442, -1, 444, -1, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 3, -1, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, 72, -1, -1, -1, 76, 77, + 78, 79, 80, 81, -1, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, -1, 95, 96, 97, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, -1, 170, 171, 172, -1, 174, -1, 176, -1, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, -1, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, -1, 204, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, -1, -1, + 218, -1, 220, 221, 222, 223, 224, -1, -1, 227, + -1, 229, -1, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, -1, 263, 264, 265, 266, 267, + -1, 269, 270, -1, 272, -1, 274, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, -1, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, -1, 402, -1, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, 416, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, 442, 443, -1, 445, -1, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, -1, 68, 69, 70, 71, 72, -1, + -1, -1, 76, 77, 78, 79, 80, 81, -1, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, -1, + -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, -1, 116, -1, 118, 119, 120, 121, 122, 123, + -1, 125, 126, 127, 128, 129, -1, -1, 132, 133, + 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, + 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, -1, 157, -1, 159, 160, 161, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, -1, + 174, -1, 176, -1, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, + -1, 195, 196, 197, 198, 199, 200, -1, 202, -1, + 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, + -1, 215, -1, -1, 218, -1, 220, 221, 222, 223, + 224, -1, -1, 227, -1, 229, -1, -1, 232, 233, + 234, -1, -1, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, + 264, 265, 266, 267, -1, 269, 270, -1, 272, -1, + 274, 275, 276, 277, 278, 279, -1, 281, 282, -1, + -1, 285, 286, 287, -1, -1, 290, 291, -1, 293, + -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, -1, 347, 348, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, -1, 366, 367, 368, 369, 370, -1, 372, 373, + 374, 375, 376, -1, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, -1, 402, -1, + 404, 405, 406, 407, 408, -1, 410, 411, -1, -1, + 414, 415, 416, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, + -1, 445, -1, 447, 448, 449, 450, -1, -1, 453, + -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, + 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, + -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, + 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, 373, 374, 375, 376, -1, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, -1, 402, -1, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, 442, 443, -1, 445, -1, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, @@ -14085,164 +14153,117 @@ static const yytype_int16 yycheck[] = 286, 287, -1, -1, 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, -1, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, - 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, -1, 365, - 366, 367, 368, 369, -1, 371, 372, 373, 374, 375, - -1, 377, 378, 379, 380, -1, 382, 383, 384, 385, + -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + -1, 347, 348, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, -1, + 366, 367, 368, 369, 370, -1, 372, 373, 374, 375, + 376, -1, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, -1, 398, 399, -1, 401, -1, 403, 404, 405, - 406, 407, -1, 409, 410, -1, -1, 413, 414, 415, - 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, - 426, -1, -1, 429, 430, 431, 432, 433, -1, -1, - 436, 437, 438, 439, 440, 441, 442, -1, 444, -1, - 446, 447, 448, 449, -1, -1, 452, -1, -1, 455, + 396, 397, -1, 399, 400, -1, 402, -1, 404, 405, + 406, 407, 408, -1, 410, 411, -1, -1, 414, 415, + 416, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, -1, + -1, 437, 438, 439, 440, 441, 442, 443, -1, 445, + -1, 447, 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, -1, 45, 46, 47, 48, 49, -1, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, - -1, -1, -1, 76, 77, 78, 79, 80, 81, -1, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, - -1, 174, -1, 176, -1, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, -1, -1, 218, -1, 220, 221, 222, - 223, 224, -1, -1, 227, -1, 229, -1, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, - 263, 264, 265, 266, 267, -1, 269, 270, -1, 272, - -1, 274, 275, 276, 277, 278, 279, -1, 281, 282, - -1, -1, 285, 286, 287, -1, -1, 290, 291, -1, - 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, -1, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, - 373, 374, 375, -1, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, -1, 398, 399, -1, 401, -1, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, - -1, 444, -1, 446, 447, 448, 449, -1, -1, 452, - -1, -1, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 3, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, - -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, - -1, 51, 52, -1, 54, 55, 56, 57, 58, 59, - -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, -1, -1, -1, 76, 77, 78, 79, - 80, 81, -1, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, -1, -1, 95, 96, 97, -1, -1, - -1, -1, -1, -1, -1, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, - -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, - 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, -1, 157, -1, 159, - 160, 161, 162, -1, 164, -1, 166, -1, -1, -1, - 170, 171, 172, -1, 174, -1, 176, -1, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, -1, - 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, - 200, -1, 202, -1, 204, 205, 206, 207, 208, 209, - 210, 211, -1, 213, -1, 215, -1, -1, 218, -1, - 220, 221, 222, 223, 224, -1, -1, 227, -1, 229, - -1, -1, 232, 233, 234, -1, -1, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, -1, 263, 264, 265, 266, 267, -1, 269, - 270, -1, 272, -1, 274, 275, 276, 277, 278, 279, - -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, - 290, 291, -1, 293, -1, 295, 296, 297, 298, 299, - 300, 301, -1, 303, 304, 305, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, - 320, 321, 322, 323, -1, 325, 326, 327, 328, 329, - 330, -1, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, -1, 346, 347, -1, 349, - 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, - -1, 371, 372, 373, 374, 375, -1, 377, 378, 379, - 380, -1, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, - -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, - 410, -1, -1, 413, 414, 415, 416, 417, -1, 419, - 420, 421, 422, 423, 424, 425, 426, -1, -1, 429, - 430, 431, 432, 433, -1, -1, 436, 437, 438, 439, - 440, 441, 442, -1, 444, -1, 446, 447, 448, 449, - -1, -1, 452, -1, -1, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 3, -1, -1, -1, + 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, + -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, + 42, 43, -1, 45, 46, 47, 48, 49, -1, 51, + 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, + 72, -1, -1, -1, 76, 77, 78, 79, 80, 81, + -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, -1, 116, -1, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, -1, -1, + 132, 133, 134, 135, 136, -1, 138, 139, 140, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, 157, -1, 159, 160, 161, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, + 172, -1, 174, -1, 176, -1, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, -1, 190, 191, + 192, 193, -1, 195, 196, 197, 198, 199, 200, -1, + 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, + -1, 213, -1, 215, -1, -1, 218, -1, 220, 221, + 222, 223, 224, -1, -1, 227, -1, 229, -1, -1, + 232, 233, 234, -1, -1, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + -1, 263, 264, 265, 266, 267, -1, 269, 270, -1, + 272, -1, 274, 275, 276, 277, 278, 279, -1, 281, + 282, -1, -1, 285, 286, 287, -1, -1, 290, 291, + -1, 293, -1, 295, 296, 297, 298, 299, 300, 301, + -1, 303, 304, 305, -1, 307, 308, 309, 310, 311, + 312, 313, 314, 315, -1, 317, 318, 319, 320, 321, + 322, -1, 324, -1, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, -1, 347, 348, -1, 350, 351, + 352, 353, -1, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, -1, 366, 367, 368, 369, 370, -1, + 372, 373, 374, 375, 376, -1, 378, 379, 380, 381, + -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, -1, + 402, -1, 404, 405, 406, 407, 408, -1, 410, 411, + -1, -1, 414, 415, 416, 417, 418, -1, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, -1, -1, 437, 438, 439, 440, 441, + 442, 443, -1, 445, -1, 447, 448, 449, 450, -1, + -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, - -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, - 47, -1, 49, 50, 51, 52, -1, 54, 55, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, -1, -1, 74, -1, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, - 97, -1, -1, -1, 101, -1, -1, -1, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, - -1, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 128, 129, -1, -1, 132, 133, 134, 135, 136, - -1, 138, 139, 140, -1, 142, 143, 144, -1, 146, - 147, 148, 149, -1, 151, 152, 153, 154, -1, -1, - 157, -1, 159, 160, 161, 162, -1, 164, -1, 166, - 167, -1, 169, 170, 171, 172, 173, 174, -1, 176, - -1, -1, -1, 180, -1, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, - 197, 198, 199, 200, -1, 202, 203, -1, 205, 206, - 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, -1, -1, - 227, 228, 229, 230, -1, 232, 233, 234, -1, -1, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - -1, -1, 269, 270, 271, 272, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, -1, -1, 285, 286, - 287, -1, -1, 290, -1, 292, 293, 294, -1, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, - 307, 308, -1, 310, 311, -1, 313, 314, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, -1, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, -1, 365, 366, - 367, 368, 369, -1, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, -1, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, - -1, 398, 399, -1, 401, 402, 403, 404, 405, 406, - 407, -1, 409, 410, -1, -1, 413, 414, -1, 416, - -1, -1, 419, 420, 421, 422, 423, 424, 425, 426, - -1, -1, 429, 430, 431, 432, 433, -1, -1, 436, - 437, 438, 439, 440, -1, 442, -1, 444, 445, 446, - 447, 448, 449, -1, -1, 452, -1, -1, 455, 456, - 457, 458, 459, 460, 3, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 472, 473, 474, 475, -1, + -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, + -1, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, 66, -1, + 68, 69, 70, 71, -1, -1, 74, -1, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + -1, -1, -1, 101, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, 116, -1, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, -1, -1, 132, 133, 134, 135, 136, -1, + 138, 139, 140, -1, 142, 143, 144, -1, 146, 147, + 148, 149, -1, 151, 152, 153, 154, -1, -1, 157, + -1, 159, 160, 161, 162, -1, 164, -1, 166, 167, + -1, 169, 170, 171, 172, 173, 174, -1, 176, -1, + -1, -1, 180, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, + 198, 199, 200, -1, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, + 228, 229, 230, -1, 232, 233, 234, -1, -1, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, + -1, 269, 270, 271, 272, -1, -1, 275, 276, 277, + 278, 279, -1, 281, 282, -1, -1, 285, 286, 287, + -1, -1, 290, -1, 292, 293, 294, -1, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, + 308, -1, 310, 311, -1, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, -1, 366, 367, + 368, 369, 370, -1, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, + -1, 399, 400, -1, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, -1, -1, 414, 415, -1, 417, + -1, -1, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, -1, -1, 437, + 438, 439, 440, 441, -1, 443, -1, 445, 446, 447, + 448, 449, 450, -1, -1, 453, -1, -1, 456, 457, + 458, 459, 460, 461, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 473, 474, 475, 476, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, -1, @@ -14273,22 +14294,68 @@ static const yytype_int16 yycheck[] = -1, 290, -1, 292, 293, 294, -1, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, -1, 310, 311, -1, 313, 314, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, -1, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, -1, 365, 366, 367, 368, - 369, -1, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, -1, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, -1, 396, -1, 398, - 399, -1, 401, 402, 403, 404, 405, 406, 407, -1, - 409, 410, -1, -1, 413, 414, -1, 416, -1, -1, - 419, 420, 421, 422, 423, 424, 425, 426, -1, -1, - 429, 430, 431, 432, 433, -1, -1, 436, 437, 438, - 439, 440, -1, 442, -1, 444, 445, 446, 447, 448, - 449, -1, -1, 452, -1, -1, 455, 456, 457, 458, - 459, 460, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 472, 473, 474, 475, -1, 19, 20, + 359, 360, 361, 362, 363, 364, -1, 366, 367, 368, + 369, 370, -1, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, + 399, 400, -1, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, -1, -1, 414, 415, -1, 417, -1, + -1, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, -1, -1, 437, 438, + 439, 440, 441, -1, 443, -1, 445, 446, 447, 448, + 449, 450, -1, -1, 453, -1, -1, 456, 457, 458, + 459, 460, 461, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, 474, 475, 476, -1, 19, + 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, 41, 42, 43, 44, 45, 46, 47, -1, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, + -1, -1, 62, 63, 64, 65, 66, -1, 68, 69, + 70, 71, -1, -1, 74, -1, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, -1, -1, + -1, 101, -1, -1, -1, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, 116, -1, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + -1, -1, 132, 133, 134, 135, 136, -1, 138, 139, + 140, -1, 142, 143, 144, -1, 146, 147, 148, 149, + -1, 151, 152, 153, 154, -1, -1, 157, -1, 159, + 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, 174, -1, 176, -1, -1, -1, + 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, -1, 195, 196, 197, 198, 199, + 200, -1, 202, 203, -1, 205, 206, 207, 208, 209, + 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, + 230, -1, 232, 233, 234, -1, -1, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, -1, -1, 269, + 270, 271, 272, -1, -1, 275, 276, 277, 278, 279, + -1, 281, 282, -1, -1, 285, 286, 287, -1, -1, + 290, -1, 292, 293, 294, -1, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, -1, 307, 308, -1, + 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, + 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, -1, 366, 367, 368, 369, + 370, -1, 372, -1, 374, 375, 376, 377, 378, 379, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, + 400, -1, 402, 403, 404, 405, 406, 407, 408, -1, + 410, 411, -1, -1, 414, 415, -1, 417, -1, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, -1, -1, 437, 438, 439, + 440, 441, -1, 443, -1, 445, 446, 447, 448, 449, + 450, -1, -1, 453, -1, -1, 456, 457, 458, 459, + 460, 461, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, 474, 475, 476, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, -1, 49, 50, @@ -14311,7 +14378,7 @@ static const yytype_int16 yycheck[] = 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, -1, -1, 227, 228, 229, 230, -1, 232, 233, 234, -1, -1, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 241, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, 269, 270, 271, 272, -1, -1, 275, 276, 277, 278, 279, -1, @@ -14319,68 +14386,22 @@ static const yytype_int16 yycheck[] = -1, 292, 293, 294, -1, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, -1, 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - -1, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, - 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, - 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, - -1, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, -1, 396, -1, 398, 399, -1, - 401, 402, 403, 404, 405, 406, 407, -1, 409, 410, - -1, -1, 413, 414, -1, 416, -1, -1, 419, 420, - 421, 422, 423, 424, 425, 426, -1, -1, 429, 430, - 431, 432, 433, -1, -1, 436, 437, 438, 439, 440, - -1, 442, -1, 444, 445, 446, 447, 448, 449, -1, - -1, 452, -1, -1, 455, 456, 457, 458, 459, 460, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 472, 473, 474, 475, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, 41, 42, - 43, 44, 45, 46, 47, -1, 49, 50, 51, 52, - -1, 54, 55, 56, 57, 58, 59, -1, -1, 62, - 63, 64, 65, 66, -1, 68, 69, 70, 71, -1, - -1, 74, -1, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, -1, -1, -1, 101, -1, - -1, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, -1, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, 129, -1, -1, 132, - 133, 134, 135, 136, -1, 138, 139, 140, -1, 142, - 143, 144, -1, 146, 147, 148, 149, -1, 151, 152, - 153, 154, -1, -1, 157, -1, 159, 160, 161, 162, - -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, - 173, 174, -1, 176, -1, -1, -1, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, -1, 195, 196, 197, 198, 199, 200, -1, 202, - 203, -1, 205, 206, 207, 208, 209, 210, 211, -1, - 213, -1, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, -1, -1, 227, 228, 229, 230, -1, 232, - 233, 234, -1, -1, 237, 238, 239, 240, 241, -1, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, -1, -1, 269, 270, 271, 272, - -1, -1, 275, 276, 277, 278, 279, -1, 281, 282, - -1, -1, 285, 286, 287, -1, -1, 290, -1, 292, - 293, 294, -1, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, -1, 307, 308, -1, 310, 311, -1, - 313, 314, 315, -1, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, -1, 346, 347, 348, 349, 350, 351, -1, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, -1, 365, 366, 367, 368, 369, -1, 371, -1, - 373, 374, 375, 376, 377, 378, 379, 380, -1, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - -1, 394, -1, 396, -1, 398, 399, -1, 401, 402, - 403, 404, 405, 406, 407, -1, 409, 410, -1, -1, - 413, 414, -1, 416, -1, -1, 419, 420, 421, 422, - 423, 424, 425, 426, -1, -1, 429, 430, 431, 432, - 433, -1, -1, 436, 437, 438, 439, 440, -1, 442, - -1, 444, 445, 446, 447, 448, 449, -1, -1, 452, - -1, -1, 455, 456, 457, 458, 459, 460, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 472, - 473, 474, 475 + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, -1, 366, 367, 368, 369, 370, + -1, 372, -1, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, -1, 395, -1, 397, -1, 399, 400, + -1, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, -1, -1, 414, 415, -1, 417, -1, -1, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, -1, -1, 437, 438, 439, 440, + 441, -1, 443, -1, 445, 446, 447, 448, 449, 450, + -1, -1, 453, -1, -1, 456, 457, 458, 459, 460, + 461, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 473, 474, 475, 476 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -14389,14 +14410,14 @@ static const yytype_uint16 yystos[] = { 0, 19, 29, 31, 32, 47, 56, 68, 79, 91, 93, 111, 125, 135, 141, 149, 151, 152, 164, 193, - 208, 233, 310, 313, 341, 350, 364, 371, 375, 385, - 396, 400, 436, 441, 454, 478, 492, 503, 504, 505, - 506, 517, 518, 519, 520, 521, 528, 532, 534, 535, - 539, 553, 555, 562, 608, 610, 611, 613, 616, 623, - 626, 627, 629, 631, 636, 637, 643, 660, 663, 664, - 667, 668, 669, 670, 671, 672, 673, 722, 859, 863, - 866, 873, 876, 413, 457, 628, 197, 357, 365, 400, - 447, 628, 3, 19, 20, 21, 22, 23, 24, 25, + 208, 233, 310, 313, 342, 351, 365, 372, 376, 386, + 397, 401, 437, 442, 455, 479, 493, 504, 505, 506, + 507, 514, 521, 525, 526, 527, 528, 529, 530, 580, + 717, 718, 719, 720, 727, 729, 730, 741, 744, 749, + 750, 753, 770, 776, 777, 778, 782, 784, 787, 789, + 792, 794, 795, 797, 800, 807, 808, 810, 814, 828, + 830, 833, 879, 414, 458, 728, 197, 358, 366, 401, + 448, 728, 3, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 68, @@ -14421,270 +14442,271 @@ static const yytype_uint16 yystos[] = 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, - 366, 367, 368, 369, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 398, - 399, 401, 402, 403, 404, 405, 406, 407, 409, 410, - 413, 414, 415, 416, 417, 419, 420, 421, 422, 423, - 424, 425, 426, 429, 430, 431, 432, 433, 436, 437, - 438, 439, 440, 441, 442, 444, 445, 446, 447, 448, - 449, 452, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 778, 844, 848, 851, 878, 879, 880, - 628, 50, 492, 655, 170, 174, 234, 241, 288, 357, - 404, 406, 422, 428, 431, 606, 622, 661, 3, 27, - 242, 313, 393, 842, 848, 878, 21, 74, 90, 144, - 153, 165, 170, 197, 241, 245, 308, 322, 354, 357, - 365, 368, 387, 400, 407, 416, 422, 447, 867, 868, - 871, 628, 842, 93, 445, 492, 524, 528, 535, 623, - 667, 668, 859, 108, 68, 208, 108, 5, 533, 847, - 848, 533, 848, 842, 27, 409, 413, 612, 614, 615, - 848, 628, 27, 130, 680, 681, 174, 234, 357, 369, - 409, 612, 638, 639, 628, 441, 612, 668, 673, 5, - 284, 733, 840, 848, 849, 169, 492, 633, 492, 329, - 674, 675, 842, 674, 669, 670, 0, 495, 445, 522, - 120, 207, 433, 27, 409, 413, 612, 668, 145, 212, - 289, 427, 683, 684, 669, 671, 672, 496, 187, 840, - 842, 187, 840, 187, 733, 187, 840, 492, 490, 494, - 826, 828, 535, 666, 667, 668, 859, 840, 404, 406, - 404, 406, 339, 187, 848, 848, 853, 329, 365, 400, - 447, 197, 840, 27, 842, 247, 416, 107, 400, 447, - 360, 3, 44, 49, 50, 51, 52, 64, 65, 74, + 324, 325, 326, 327, 328, 329, 330, 331, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 366, + 367, 368, 369, 370, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 399, + 400, 402, 403, 404, 405, 406, 407, 408, 410, 411, + 414, 415, 416, 417, 418, 420, 421, 422, 423, 424, + 425, 426, 427, 430, 431, 432, 433, 434, 437, 438, + 439, 440, 441, 442, 443, 445, 446, 447, 448, 449, + 450, 453, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 636, 702, 706, 709, 880, 881, 882, + 728, 50, 493, 765, 170, 174, 234, 241, 288, 358, + 405, 407, 423, 429, 432, 726, 742, 877, 3, 27, + 242, 313, 394, 700, 706, 880, 21, 74, 90, 144, + 153, 165, 170, 197, 241, 245, 308, 322, 355, 358, + 366, 369, 388, 401, 408, 417, 423, 448, 508, 509, + 512, 728, 700, 93, 446, 493, 517, 521, 525, 729, + 778, 784, 810, 108, 68, 208, 108, 5, 705, 706, + 809, 809, 706, 700, 27, 410, 414, 706, 796, 831, + 832, 728, 27, 130, 537, 538, 174, 234, 358, 370, + 410, 771, 772, 796, 728, 442, 525, 530, 796, 5, + 284, 591, 698, 706, 707, 169, 493, 746, 493, 330, + 531, 532, 700, 531, 526, 527, 0, 496, 446, 515, + 145, 212, 289, 428, 540, 541, 526, 528, 529, 497, + 27, 410, 414, 525, 796, 120, 207, 434, 187, 698, + 700, 187, 698, 187, 591, 187, 698, 493, 491, 495, + 684, 686, 525, 729, 778, 799, 810, 698, 405, 407, + 405, 407, 340, 187, 706, 706, 711, 197, 698, 330, + 366, 401, 448, 27, 700, 247, 417, 107, 401, 448, + 361, 3, 44, 49, 50, 51, 52, 64, 65, 74, 82, 94, 101, 112, 113, 134, 161, 167, 169, 173, 187, 189, 203, 210, 211, 213, 216, 217, 219, 228, - 230, 242, 261, 262, 263, 271, 276, 292, 294, 326, - 348, 352, 372, 376, 379, 393, 402, 409, 410, 421, - 442, 445, 744, 745, 747, 749, 751, 753, 755, 756, - 757, 759, 760, 761, 763, 764, 852, 872, 878, 881, - 187, 853, 869, 187, 841, 842, 187, 842, 492, 877, - 606, 524, 3, 48, 49, 51, 52, 64, 65, 72, + 230, 242, 261, 262, 263, 271, 276, 292, 294, 327, + 349, 353, 373, 377, 380, 394, 403, 410, 411, 422, + 443, 446, 513, 602, 603, 605, 607, 609, 611, 613, + 614, 615, 617, 618, 619, 621, 622, 710, 880, 883, + 187, 510, 711, 187, 699, 700, 187, 700, 493, 829, + 877, 517, 3, 48, 49, 51, 52, 64, 65, 72, 112, 113, 150, 155, 161, 178, 179, 204, 210, 211, 213, 242, 261, 263, 267, 274, 276, 291, 295, 309, - 312, 326, 352, 372, 379, 393, 395, 409, 410, 415, - 417, 421, 441, 442, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 525, 527, 528, 530, 531, - 878, 882, 522, 847, 533, 847, 481, 492, 492, 665, - 475, 218, 494, 283, 4, 6, 7, 8, 9, 10, + 312, 327, 353, 373, 380, 394, 396, 410, 411, 416, + 418, 422, 442, 443, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 518, 520, 521, 523, 524, + 880, 884, 515, 705, 809, 705, 482, 493, 493, 798, + 476, 218, 495, 283, 4, 6, 7, 8, 9, 10, 35, 49, 51, 52, 60, 61, 64, 65, 72, 74, 98, 99, 100, 101, 102, 103, 104, 112, 113, 115, 150, 155, 156, 161, 178, 179, 210, 211, 213, 235, 236, 261, 263, 268, 273, 274, 276, 285, 295, 309, - 326, 352, 370, 379, 395, 409, 410, 415, 417, 418, - 421, 434, 442, 476, 483, 484, 485, 490, 492, 497, - 499, 500, 669, 713, 748, 751, 754, 755, 756, 758, - 759, 760, 763, 764, 775, 777, 778, 779, 781, 794, - 795, 801, 820, 825, 832, 833, 844, 845, 846, 847, - 848, 831, 832, 638, 638, 847, 638, 475, 168, 411, - 481, 492, 840, 485, 828, 3, 167, 169, 445, 528, - 632, 634, 167, 635, 775, 805, 848, 674, 496, 492, - 855, 493, 493, 505, 840, 168, 214, 733, 860, 475, - 218, 27, 130, 679, 679, 54, 679, 158, 163, 231, - 280, 689, 691, 692, 715, 717, 718, 719, 683, 684, - 492, 150, 23, 29, 135, 287, 337, 341, 371, 438, - 511, 514, 515, 337, 150, 36, 55, 106, 196, 246, - 254, 266, 297, 337, 343, 365, 371, 385, 514, 556, - 559, 150, 337, 371, 514, 150, 337, 371, 514, 3, + 327, 353, 371, 380, 396, 410, 411, 416, 418, 419, + 422, 435, 443, 477, 484, 485, 486, 491, 493, 498, + 500, 501, 526, 570, 606, 609, 612, 613, 614, 616, + 617, 618, 621, 622, 633, 635, 636, 637, 639, 652, + 653, 659, 678, 683, 690, 691, 702, 703, 704, 705, + 706, 689, 690, 771, 771, 705, 771, 476, 168, 412, + 482, 493, 698, 486, 686, 3, 167, 169, 446, 521, + 745, 747, 167, 748, 633, 663, 706, 531, 497, 493, + 713, 494, 494, 506, 698, 27, 130, 536, 536, 54, + 536, 158, 163, 231, 280, 546, 548, 549, 573, 575, + 576, 577, 540, 541, 493, 476, 218, 168, 214, 591, + 779, 150, 23, 29, 135, 287, 338, 342, 372, 439, + 735, 738, 739, 338, 150, 36, 55, 106, 196, 246, + 254, 266, 297, 338, 344, 366, 372, 386, 738, 801, + 804, 150, 338, 372, 738, 150, 338, 372, 738, 3, 27, 44, 50, 74, 82, 94, 101, 130, 167, 169, 173, 189, 203, 216, 217, 219, 228, 230, 242, 262, - 271, 292, 294, 348, 376, 393, 402, 421, 443, 445, - 485, 493, 775, 807, 808, 850, 856, 878, 883, 775, - 827, 3, 27, 31, 32, 33, 34, 35, 36, 37, + 271, 292, 294, 349, 377, 394, 403, 422, 444, 446, + 486, 494, 633, 665, 666, 708, 714, 880, 885, 633, + 685, 3, 27, 31, 32, 33, 34, 35, 36, 37, 40, 53, 60, 61, 67, 73, 75, 86, 93, 98, 99, 100, 102, 103, 104, 115, 117, 124, 130, 131, 137, 141, 145, 156, 158, 163, 165, 168, 175, 177, 181, 194, 201, 212, 214, 225, 226, 231, 235, 236, - 268, 273, 280, 283, 284, 288, 289, 306, 316, 331, - 345, 364, 370, 381, 397, 400, 408, 411, 412, 418, - 427, 428, 434, 435, 441, 443, 450, 451, 453, 454, - 843, 857, 878, 882, 884, 826, 493, 492, 596, 606, - 268, 864, 494, 854, 36, 447, 187, 840, 187, 625, - 840, 840, 82, 619, 492, 662, 458, 83, 127, 300, - 405, 444, 762, 762, 762, 492, 750, 750, 312, 492, - 752, 150, 492, 64, 65, 762, 750, 747, 456, 478, - 492, 765, 492, 765, 492, 35, 746, 492, 109, 110, - 184, 185, 248, 249, 250, 251, 252, 253, 256, 257, - 361, 362, 472, 473, 492, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 750, 58, 344, 496, 870, 150, - 496, 870, 150, 496, 870, 150, 283, 805, 400, 493, - 496, 4, 156, 283, 418, 483, 484, 523, 525, 526, - 529, 558, 561, 846, 847, 524, 492, 650, 654, 529, - 558, 640, 642, 807, 745, 809, 36, 229, 848, 492, - 829, 490, 775, 824, 492, 492, 163, 492, 492, 669, - 492, 492, 492, 775, 492, 492, 492, 492, 492, 492, - 492, 492, 492, 775, 775, 775, 146, 834, 835, 805, - 806, 669, 775, 805, 796, 797, 848, 849, 9, 829, - 828, 492, 847, 492, 846, 847, 3, 8, 11, 16, - 17, 18, 33, 36, 41, 48, 73, 173, 189, 194, - 216, 217, 230, 268, 271, 285, 288, 376, 476, 479, - 480, 481, 483, 484, 485, 486, 487, 488, 799, 800, - 801, 803, 455, 782, 829, 15, 294, 775, 15, 214, - 496, 676, 492, 847, 829, 494, 828, 676, 3, 115, - 234, 558, 641, 764, 847, 97, 115, 642, 115, 642, - 840, 493, 496, 522, 493, 496, 675, 841, 36, 855, - 860, 537, 840, 36, 848, 371, 229, 671, 671, 685, - 686, 775, 671, 160, 265, 705, 220, 266, 325, 374, - 433, 4, 9, 27, 700, 775, 483, 484, 701, 702, - 775, 777, 715, 716, 692, 691, 689, 690, 163, 718, - 278, 720, 689, 715, 805, 840, 67, 75, 86, 165, - 187, 316, 428, 577, 587, 602, 848, 75, 86, 554, - 86, 554, 492, 411, 492, 575, 240, 431, 575, 86, - 496, 411, 840, 747, 558, 54, 560, 558, 558, 106, - 246, 254, 54, 411, 454, 478, 557, 259, 357, 557, - 559, 733, 86, 411, 554, 357, 840, 411, 357, 807, - 807, 808, 493, 496, 683, 684, 13, 14, 491, 501, - 411, 595, 600, 848, 454, 653, 329, 400, 447, 150, - 93, 562, 608, 616, 629, 865, 843, 494, 142, 840, - 268, 556, 609, 268, 36, 492, 596, 596, 187, 590, - 620, 848, 493, 807, 36, 492, 805, 846, 872, 809, - 762, 762, 35, 746, 409, 409, 846, 846, 743, 848, - 490, 490, 846, 846, 411, 411, 411, 411, 745, 869, - 853, 841, 842, 842, 853, 493, 187, 625, 840, 524, - 530, 4, 846, 4, 846, 652, 659, 857, 50, 95, - 121, 139, 143, 164, 167, 182, 273, 281, 323, 656, - 496, 493, 496, 493, 496, 666, 805, 826, 806, 450, - 821, 822, 775, 805, 492, 846, 846, 3, 766, 767, - 768, 769, 770, 771, 772, 773, 810, 811, 847, 846, - 846, 775, 8, 16, 17, 18, 479, 480, 481, 483, - 484, 485, 486, 487, 488, 799, 804, 848, 775, 812, - 483, 484, 492, 776, 777, 801, 814, 825, 493, 805, - 775, 805, 815, 775, 53, 168, 226, 412, 775, 805, - 818, 775, 492, 848, 339, 838, 491, 493, 496, 496, - 498, 501, 805, 775, 774, 774, 745, 775, 775, 775, - 775, 5, 857, 858, 409, 40, 397, 830, 853, 775, - 775, 492, 669, 819, 130, 156, 268, 273, 278, 418, - 429, 775, 273, 492, 775, 411, 48, 173, 189, 194, - 230, 376, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 27, 34, 381, 798, 177, 159, 783, 775, - 352, 492, 795, 775, 174, 234, 400, 404, 406, 431, - 677, 840, 833, 168, 723, 807, 485, 723, 492, 847, - 493, 840, 632, 534, 840, 775, 493, 492, 435, 862, - 115, 296, 492, 536, 668, 36, 848, 492, 541, 550, - 552, 848, 496, 37, 124, 435, 687, 352, 353, 483, - 484, 702, 704, 777, 374, 220, 284, 305, 305, 496, - 487, 4, 703, 846, 703, 352, 353, 704, 839, 840, - 272, 378, 721, 716, 690, 493, 337, 514, 492, 187, - 587, 842, 220, 268, 220, 435, 492, 580, 745, 842, - 848, 187, 842, 187, 848, 23, 135, 371, 510, 513, - 570, 585, 857, 842, 579, 599, 857, 842, 511, 842, - 337, 371, 514, 556, 558, 853, 842, 558, 853, 842, - 558, 337, 371, 514, 842, 842, 842, 842, 337, 371, - 514, 842, 842, 683, 683, 683, 443, 808, 188, 342, - 682, 775, 775, 775, 827, 321, 649, 493, 496, 281, - 168, 411, 644, 447, 840, 840, 848, 606, 843, 492, - 492, 150, 150, 149, 668, 230, 577, 587, 591, 594, - 603, 605, 848, 454, 456, 582, 454, 621, 268, 283, - 493, 775, 805, 493, 493, 870, 493, 490, 475, 475, - 493, 493, 493, 496, 745, 846, 491, 846, 493, 493, - 767, 769, 770, 771, 770, 771, 771, 870, 870, 283, - 870, 268, 36, 493, 496, 485, 492, 529, 558, 651, - 36, 648, 847, 648, 268, 273, 323, 648, 648, 640, - 745, 493, 491, 775, 137, 822, 823, 36, 493, 775, - 493, 493, 493, 168, 493, 493, 496, 493, 494, 306, - 813, 493, 776, 776, 775, 11, 16, 17, 18, 194, - 216, 285, 479, 480, 481, 483, 484, 485, 486, 487, - 488, 801, 776, 493, 493, 163, 168, 816, 817, 493, - 36, 818, 805, 818, 818, 168, 493, 36, 841, 492, - 775, 836, 829, 775, 796, 775, 493, 493, 475, 776, - 776, 143, 805, 168, 130, 156, 273, 278, 418, 429, - 492, 143, 804, 775, 397, 830, 775, 819, 775, 411, - 492, 669, 492, 492, 293, 787, 404, 406, 404, 406, - 840, 400, 678, 678, 678, 225, 353, 492, 669, 724, - 725, 726, 733, 734, 778, 780, 781, 848, 451, 739, - 683, 835, 739, 846, 774, 855, 666, 724, 451, 861, - 441, 399, 434, 545, 540, 549, 848, 283, 542, 848, - 546, 552, 496, 723, 481, 829, 686, 285, 799, 802, - 477, 688, 4, 846, 704, 284, 433, 701, 496, 239, - 411, 775, 268, 602, 492, 150, 492, 580, 197, 600, - 563, 287, 573, 563, 23, 135, 341, 343, 371, 507, - 508, 509, 515, 516, 150, 870, 150, 870, 570, 585, - 570, 493, 496, 566, 847, 493, 496, 481, 494, 411, - 357, 86, 411, 554, 357, 411, 411, 411, 357, 682, - 682, 682, 808, 275, 275, 493, 491, 388, 389, 658, - 847, 595, 649, 840, 492, 596, 864, 400, 847, 874, - 875, 600, 840, 625, 840, 842, 454, 624, 840, 493, - 496, 281, 575, 281, 283, 574, 575, 36, 150, 840, - 493, 746, 846, 765, 765, 746, 848, 491, 491, 853, - 150, 652, 529, 646, 657, 847, 847, 273, 600, 485, - 600, 847, 847, 408, 775, 141, 745, 493, 775, 775, - 804, 775, 816, 745, 776, 776, 776, 776, 130, 268, - 278, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 775, 775, 817, 816, 745, 493, 493, 493, 805, - 745, 493, 775, 836, 837, 36, 493, 774, 775, 33, - 33, 775, 493, 775, 168, 492, 809, 775, 493, 143, - 776, 776, 143, 143, 775, 775, 684, 451, 492, 788, - 848, 678, 678, 678, 678, 840, 840, 840, 669, 734, - 168, 669, 725, 726, 36, 727, 728, 848, 496, 94, - 169, 203, 219, 228, 262, 348, 730, 728, 36, 727, - 729, 848, 478, 738, 828, 775, 177, 706, 682, 838, - 706, 493, 493, 775, 345, 544, 440, 493, 496, 829, - 84, 544, 493, 496, 541, 861, 775, 492, 688, 160, - 224, 284, 840, 842, 493, 150, 600, 587, 600, 563, - 590, 493, 117, 201, 266, 268, 586, 492, 597, 172, - 115, 186, 268, 575, 557, 107, 115, 172, 268, 387, - 390, 559, 575, 371, 509, 422, 842, 848, 513, 599, + 268, 273, 280, 283, 284, 288, 289, 306, 316, 323, + 332, 346, 365, 371, 382, 398, 401, 409, 412, 413, + 419, 428, 429, 435, 436, 442, 444, 451, 452, 454, + 455, 701, 715, 880, 884, 886, 684, 494, 493, 867, + 877, 268, 790, 495, 712, 36, 82, 723, 493, 743, + 448, 187, 698, 187, 698, 786, 698, 459, 83, 127, + 300, 406, 445, 620, 620, 620, 493, 608, 608, 312, + 493, 610, 150, 493, 64, 65, 620, 608, 605, 457, + 479, 493, 623, 493, 623, 58, 345, 497, 511, 493, + 35, 604, 493, 109, 110, 184, 185, 248, 249, 250, + 251, 252, 253, 256, 257, 362, 363, 473, 474, 493, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 608, + 150, 497, 511, 150, 497, 511, 150, 283, 663, 401, + 494, 497, 4, 156, 283, 419, 484, 485, 516, 518, + 519, 522, 704, 705, 803, 806, 517, 493, 760, 764, + 522, 773, 775, 803, 665, 603, 667, 36, 229, 706, + 493, 687, 491, 633, 682, 493, 493, 163, 493, 493, + 526, 493, 493, 493, 633, 493, 493, 493, 493, 493, + 493, 493, 493, 493, 633, 633, 633, 146, 692, 693, + 663, 664, 526, 633, 663, 654, 655, 706, 707, 9, + 687, 686, 493, 705, 493, 704, 705, 3, 8, 11, + 16, 17, 18, 33, 36, 41, 48, 73, 173, 189, + 194, 216, 217, 230, 268, 271, 285, 288, 377, 477, + 480, 481, 482, 484, 485, 486, 487, 488, 489, 657, + 658, 659, 661, 456, 640, 687, 15, 294, 633, 15, + 214, 497, 533, 493, 705, 687, 495, 686, 533, 3, + 115, 234, 622, 705, 774, 803, 97, 115, 775, 115, + 775, 698, 494, 497, 515, 494, 497, 532, 699, 36, + 713, 528, 528, 542, 543, 633, 528, 160, 265, 562, + 220, 266, 326, 375, 434, 4, 9, 27, 557, 633, + 484, 485, 558, 559, 633, 635, 573, 574, 549, 548, + 546, 547, 163, 576, 278, 578, 546, 573, 663, 229, + 779, 698, 812, 36, 706, 372, 698, 67, 75, 86, + 165, 187, 316, 429, 706, 848, 858, 873, 75, 86, + 783, 86, 783, 493, 412, 493, 846, 240, 432, 846, + 86, 497, 412, 698, 605, 803, 54, 805, 803, 803, + 106, 246, 254, 54, 412, 455, 479, 802, 259, 358, + 802, 804, 591, 86, 412, 783, 358, 698, 412, 358, + 665, 665, 666, 494, 497, 540, 541, 13, 14, 492, + 502, 412, 706, 866, 871, 455, 763, 330, 401, 448, + 150, 93, 720, 787, 791, 792, 833, 701, 495, 142, + 187, 706, 724, 861, 494, 665, 36, 698, 268, 793, + 801, 268, 493, 867, 36, 867, 493, 663, 704, 513, + 667, 620, 620, 35, 604, 410, 410, 704, 704, 603, + 601, 706, 491, 491, 704, 704, 412, 412, 412, 412, + 510, 711, 699, 700, 700, 711, 494, 187, 698, 786, + 517, 523, 4, 704, 4, 704, 715, 762, 769, 50, + 95, 121, 139, 143, 164, 167, 182, 273, 281, 324, + 766, 497, 494, 497, 494, 497, 799, 663, 684, 664, + 451, 679, 680, 633, 663, 493, 704, 704, 3, 624, + 625, 626, 627, 628, 629, 630, 631, 668, 669, 705, + 704, 704, 633, 8, 16, 17, 18, 480, 481, 482, + 484, 485, 486, 487, 488, 489, 657, 662, 706, 633, + 670, 484, 485, 493, 634, 635, 659, 672, 683, 494, + 663, 633, 663, 673, 633, 53, 168, 226, 413, 633, + 663, 676, 633, 493, 706, 340, 696, 492, 494, 497, + 497, 499, 502, 663, 633, 632, 632, 603, 633, 633, + 633, 633, 5, 715, 716, 410, 40, 398, 688, 711, + 633, 633, 493, 526, 677, 130, 156, 268, 273, 278, + 419, 430, 633, 273, 493, 633, 412, 48, 173, 189, + 194, 230, 377, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 27, 34, 382, 656, 177, 159, 641, + 633, 353, 493, 653, 633, 174, 234, 401, 405, 407, + 432, 534, 698, 691, 168, 581, 665, 486, 581, 493, + 705, 494, 698, 745, 698, 807, 633, 494, 493, 497, + 37, 124, 436, 544, 353, 354, 484, 485, 559, 561, + 635, 375, 220, 284, 305, 305, 497, 488, 4, 560, + 704, 560, 353, 354, 561, 697, 698, 272, 379, 579, + 574, 547, 494, 436, 781, 36, 115, 296, 493, 525, + 811, 706, 493, 706, 816, 825, 827, 338, 738, 493, + 187, 858, 700, 220, 268, 220, 436, 493, 851, 603, + 700, 706, 187, 700, 187, 706, 23, 135, 372, 715, + 734, 737, 841, 856, 700, 715, 850, 870, 700, 735, + 700, 338, 372, 738, 801, 803, 711, 700, 803, 711, + 700, 803, 338, 372, 738, 700, 700, 700, 700, 338, + 372, 738, 700, 700, 540, 540, 540, 444, 666, 188, + 343, 539, 633, 633, 633, 685, 321, 759, 494, 497, + 281, 168, 412, 754, 448, 698, 698, 706, 877, 701, + 493, 268, 283, 494, 633, 493, 150, 150, 230, 706, + 848, 858, 862, 865, 874, 876, 455, 457, 853, 149, + 525, 455, 725, 663, 494, 494, 511, 494, 491, 476, + 476, 494, 494, 494, 497, 603, 704, 492, 704, 494, + 494, 625, 627, 628, 629, 628, 629, 629, 511, 511, + 283, 511, 268, 36, 486, 493, 522, 761, 803, 494, + 497, 36, 758, 705, 758, 268, 273, 324, 758, 758, + 773, 603, 494, 492, 633, 137, 680, 681, 36, 494, + 633, 494, 494, 494, 168, 494, 494, 497, 494, 495, + 306, 671, 494, 634, 634, 633, 11, 16, 17, 18, + 194, 216, 285, 480, 481, 482, 484, 485, 486, 487, + 488, 489, 659, 634, 494, 494, 163, 168, 674, 675, + 494, 36, 676, 663, 676, 676, 168, 494, 36, 699, + 493, 633, 694, 687, 633, 654, 633, 494, 494, 476, + 634, 634, 143, 663, 168, 130, 156, 273, 278, 419, + 430, 493, 143, 662, 633, 398, 688, 633, 677, 633, + 412, 493, 526, 493, 493, 293, 645, 405, 407, 405, + 407, 698, 401, 535, 535, 535, 225, 354, 493, 526, + 582, 583, 584, 591, 592, 636, 638, 639, 706, 452, + 597, 540, 693, 597, 704, 632, 713, 799, 543, 285, + 657, 660, 478, 545, 4, 704, 561, 284, 434, 558, + 497, 239, 582, 452, 780, 706, 442, 400, 435, 820, + 706, 815, 824, 283, 817, 821, 827, 687, 497, 581, + 482, 412, 633, 268, 873, 493, 150, 493, 851, 197, + 871, 834, 287, 844, 834, 23, 135, 342, 344, 372, + 731, 732, 733, 739, 740, 150, 511, 150, 511, 841, + 856, 841, 494, 497, 705, 837, 482, 495, 494, 497, + 412, 358, 86, 412, 783, 358, 412, 412, 412, 358, + 539, 539, 539, 666, 275, 275, 494, 492, 389, 390, + 705, 768, 866, 759, 698, 493, 867, 790, 401, 705, + 751, 752, 150, 698, 871, 698, 698, 786, 698, 494, + 497, 281, 846, 281, 283, 845, 700, 455, 785, 846, + 36, 494, 604, 704, 623, 623, 604, 706, 492, 492, + 711, 150, 522, 756, 767, 762, 705, 705, 273, 871, + 486, 871, 705, 705, 409, 633, 141, 603, 494, 633, + 633, 662, 633, 674, 603, 634, 634, 634, 634, 130, + 268, 278, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 633, 633, 675, 674, 603, 494, 494, 494, + 663, 603, 494, 633, 694, 695, 36, 494, 632, 633, + 33, 33, 633, 494, 633, 168, 493, 667, 633, 494, + 143, 634, 634, 143, 143, 633, 633, 541, 452, 493, + 646, 706, 535, 535, 535, 535, 698, 698, 698, 526, + 592, 168, 526, 583, 584, 36, 585, 586, 706, 497, + 94, 169, 203, 219, 228, 262, 349, 588, 586, 36, + 585, 587, 706, 479, 596, 686, 633, 177, 563, 539, + 696, 563, 494, 494, 493, 545, 160, 224, 284, 698, + 633, 346, 819, 441, 687, 494, 497, 84, 819, 494, + 497, 816, 780, 633, 700, 494, 150, 871, 858, 871, + 834, 861, 494, 117, 201, 266, 268, 857, 493, 868, + 172, 115, 186, 268, 846, 802, 107, 115, 172, 268, + 388, 391, 804, 846, 372, 733, 423, 700, 706, 737, 3, 44, 50, 74, 82, 94, 101, 167, 169, 173, 189, 203, 216, 217, 219, 228, 230, 242, 262, 267, - 271, 285, 292, 294, 348, 372, 376, 393, 402, 421, - 445, 483, 484, 558, 564, 601, 745, 802, 847, 850, - 878, 884, 857, 842, 842, 842, 842, 842, 842, 842, - 842, 842, 842, 493, 493, 493, 683, 557, 658, 492, - 594, 621, 187, 840, 493, 496, 493, 609, 36, 492, - 877, 107, 266, 584, 582, 591, 79, 668, 590, 435, - 618, 491, 745, 870, 625, 493, 496, 600, 775, 493, - 493, 817, 168, 130, 278, 492, 493, 493, 493, 496, - 848, 775, 775, 775, 809, 493, 775, 33, 33, 775, - 775, 143, 493, 493, 775, 789, 848, 840, 840, 840, - 840, 728, 729, 492, 493, 848, 849, 402, 697, 698, - 492, 725, 219, 292, 731, 725, 731, 219, 730, 731, - 219, 698, 492, 848, 698, 492, 290, 54, 181, 714, - 493, 714, 847, 832, 668, 296, 668, 540, 283, 492, - 538, 481, 552, 544, 804, 563, 587, 493, 493, 454, - 593, 118, 190, 199, 117, 437, 570, 588, 67, 73, - 86, 115, 117, 172, 201, 268, 273, 316, 331, 428, - 435, 568, 569, 581, 30, 54, 607, 187, 273, 558, - 775, 607, 273, 483, 484, 561, 848, 745, 870, 870, - 242, 393, 850, 854, 481, 411, 411, 682, 650, 435, - 645, 647, 600, 493, 36, 268, 492, 847, 621, 149, - 668, 594, 624, 107, 147, 195, 574, 120, 135, 315, - 454, 630, 283, 617, 848, 492, 36, 657, 776, 168, - 492, 809, 836, 493, 775, 775, 775, 493, 302, 790, - 735, 736, 780, 727, 492, 4, 9, 693, 695, 696, - 848, 841, 725, 283, 435, 732, 725, 219, 725, 740, - 741, 848, 492, 740, 848, 96, 178, 351, 492, 707, - 708, 709, 710, 711, 712, 775, 775, 453, 784, 847, - 784, 545, 86, 492, 543, 551, 780, 848, 131, 775, - 493, 331, 593, 492, 583, 563, 493, 496, 492, 853, - 842, 776, 607, 118, 190, 117, 273, 220, 840, 593, - 81, 115, 36, 150, 73, 742, 854, 487, 564, 842, - 842, 493, 557, 122, 493, 582, 668, 150, 36, 842, - 624, 493, 27, 78, 87, 116, 186, 198, 387, 390, - 578, 578, 353, 353, 59, 67, 234, 840, 551, 776, - 809, 493, 54, 683, 493, 496, 36, 737, 841, 305, - 487, 305, 353, 487, 492, 492, 493, 775, 492, 725, - 732, 493, 496, 745, 740, 493, 492, 373, 492, 493, - 496, 785, 786, 848, 435, 694, 694, 440, 842, 775, - 493, 496, 73, 547, 547, 269, 433, 840, 563, 589, - 592, 857, 570, 775, 268, 569, 36, 593, 596, 842, - 186, 853, 435, 512, 487, 422, 650, 847, 621, 574, - 630, 840, 668, 877, 582, 67, 286, 67, 618, 493, - 493, 805, 324, 353, 791, 738, 735, 492, 493, 848, - 693, 841, 741, 742, 493, 805, 492, 805, 708, 496, - 36, 355, 668, 493, 739, 543, 853, 548, 853, 548, - 371, 596, 493, 496, 481, 493, 186, 244, 604, 492, - 565, 775, 422, 36, 492, 630, 624, 574, 286, 286, - 492, 621, 48, 97, 424, 775, 792, 793, 792, 493, - 740, 493, 496, 493, 493, 493, 707, 493, 786, 788, - 696, 547, 687, 687, 550, 604, 592, 564, 266, 576, - 565, 169, 301, 377, 283, 571, 572, 598, 556, 668, - 551, 739, 793, 352, 162, 311, 162, 311, 493, 9, - 338, 699, 493, 548, 688, 688, 739, 572, 199, 120, - 433, 283, 598, 283, 571, 493, 630, 493, 33, 493, - 492, 687, 563, 58, 266, 344, 371, 567, 567, 621, - 793, 9, 688, 22, 115, 273, 739, 493 + 271, 285, 292, 294, 349, 373, 377, 394, 403, 422, + 446, 484, 485, 603, 660, 705, 708, 803, 835, 872, + 880, 886, 715, 870, 700, 700, 700, 700, 700, 700, + 700, 700, 700, 700, 494, 494, 494, 540, 802, 768, + 493, 865, 725, 187, 698, 494, 497, 861, 436, 722, + 494, 793, 493, 36, 855, 853, 862, 79, 829, 107, + 266, 525, 492, 603, 511, 786, 494, 497, 871, 633, + 494, 494, 675, 168, 130, 278, 493, 494, 494, 494, + 497, 706, 633, 633, 633, 667, 494, 633, 33, 33, + 633, 633, 143, 494, 494, 633, 647, 706, 698, 698, + 698, 698, 586, 587, 493, 494, 706, 707, 403, 554, + 555, 493, 583, 219, 292, 589, 583, 589, 219, 588, + 589, 219, 555, 493, 706, 555, 493, 290, 54, 181, + 571, 494, 571, 705, 662, 690, 525, 296, 525, 815, + 283, 493, 813, 482, 827, 819, 834, 858, 494, 494, + 455, 864, 118, 190, 199, 117, 438, 841, 859, 67, + 73, 86, 115, 117, 172, 201, 268, 273, 316, 332, + 429, 436, 839, 840, 852, 30, 54, 878, 187, 273, + 803, 633, 878, 273, 484, 485, 806, 706, 603, 511, + 511, 242, 394, 708, 712, 482, 412, 412, 539, 760, + 436, 755, 757, 871, 494, 36, 268, 493, 705, 283, + 706, 721, 493, 725, 865, 149, 525, 147, 195, 845, + 120, 135, 315, 785, 107, 455, 788, 36, 767, 634, + 168, 493, 667, 694, 494, 633, 633, 633, 494, 302, + 648, 593, 594, 638, 585, 493, 4, 9, 550, 552, + 553, 706, 699, 583, 283, 436, 590, 583, 219, 583, + 598, 599, 706, 493, 598, 706, 96, 178, 352, 493, + 564, 565, 566, 567, 568, 569, 633, 633, 454, 642, + 705, 642, 494, 820, 86, 493, 638, 706, 818, 826, + 131, 633, 332, 864, 493, 854, 834, 494, 497, 493, + 711, 700, 634, 878, 118, 190, 117, 273, 220, 698, + 864, 81, 115, 36, 150, 73, 600, 712, 488, 835, + 700, 700, 494, 802, 122, 494, 853, 525, 150, 698, + 826, 36, 494, 700, 785, 27, 78, 87, 116, 186, + 198, 388, 391, 849, 849, 354, 354, 59, 67, 234, + 634, 667, 494, 54, 540, 494, 497, 36, 595, 699, + 305, 488, 305, 354, 488, 493, 493, 494, 633, 493, + 583, 590, 494, 497, 603, 598, 494, 493, 374, 493, + 494, 497, 643, 644, 706, 323, 572, 572, 441, 700, + 633, 73, 822, 822, 494, 497, 269, 434, 698, 834, + 715, 860, 863, 841, 633, 268, 840, 36, 864, 867, + 700, 186, 711, 436, 736, 488, 423, 760, 705, 725, + 845, 788, 698, 722, 494, 525, 853, 829, 67, 286, + 67, 494, 663, 325, 354, 649, 596, 593, 493, 494, + 706, 550, 699, 599, 600, 494, 663, 493, 663, 565, + 497, 36, 633, 436, 551, 551, 525, 494, 711, 711, + 823, 823, 597, 818, 372, 867, 482, 494, 497, 494, + 186, 244, 875, 493, 836, 633, 423, 36, 493, 493, + 725, 788, 845, 785, 286, 286, 48, 97, 425, 633, + 650, 651, 650, 494, 598, 494, 497, 494, 494, 494, + 564, 494, 644, 646, 356, 822, 544, 544, 825, 875, + 835, 863, 266, 847, 836, 169, 301, 378, 283, 842, + 843, 869, 801, 525, 826, 597, 651, 353, 162, 311, + 162, 311, 494, 9, 339, 556, 494, 553, 823, 545, + 545, 597, 843, 199, 120, 434, 283, 869, 283, 842, + 494, 788, 494, 33, 494, 493, 544, 834, 58, 266, + 345, 372, 838, 838, 725, 651, 9, 545, 22, 115, + 273, 597, 494 }; #define yyerrok (yyerrstatus = 0) @@ -15400,863 +15422,434 @@ YYLTYPE yylloc; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - YYSTACK_RELOCATE (yyls); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - yylsp = yyls + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to look-ahead token. */ - yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) - goto yydefault; - - /* Not known => get a look-ahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - if (yyn == YYFINAL) - YYACCEPT; - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - yystate = yyn; - *++yyvsp = yylval; - *++yylsp = yylloc; - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - /* Default location. */ - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 2: -#line 466 "third_party/libpg_query/grammar/grammar.y" - { - pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); - ;} - break; - - case 3: -#line 482 "third_party/libpg_query/grammar/grammar.y" - { - if ((yyvsp[(1) - (3)].list) != NIL) - { - /* update length of previous stmt */ - updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)])); - } - if ((yyvsp[(3) - (3)].node) != NULL) - (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1)); - else - (yyval.list) = (yyvsp[(1) - (3)].list); - ;} - break; - - case 4: -#line 494 "third_party/libpg_query/grammar/grammar.y" - { - if ((yyvsp[(1) - (1)].node) != NULL) - (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0)); - else - (yyval.list) = NIL; - ;} - break; - - case 39: -#line 537 "third_party/libpg_query/grammar/grammar.y" - { (yyval.node) = NULL; ;} - break; - - case 40: -#line 10 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_TABLE; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 41: -#line 19 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_TABLE; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 42: -#line 28 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_INDEX; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + YYSTACK_RELOCATE (yyls); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ - case 43: -#line 37 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_INDEX; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + yylsp = yyls + yysize - 1; - case 44: -#line 46 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_SEQUENCE; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); - case 45: -#line 55 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_SEQUENCE; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } - case 46: -#line 64 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(3) - (4)].range); - n->cmds = (yyvsp[(4) - (4)].list); - n->relkind = PG_OBJECT_VIEW; - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - case 47: -#line 73 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableStmt *n = makeNode(PGAlterTableStmt); - n->relation = (yyvsp[(5) - (6)].range); - n->cmds = (yyvsp[(6) - (6)].list); - n->relkind = PG_OBJECT_VIEW; - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; + goto yybackup; - case 48: -#line 86 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} - break; +/*-----------. +| yybackup. | +`-----------*/ +yybackup: - case 49: -#line 88 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} - break; + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ - case 50: -#line 93 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = (yyvsp[(3) - (3)].node); ;} - break; + /* First try to decide what to do without reference to look-ahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; - case 51: -#line 94 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = NULL; ;} - break; + /* Not known => get a look-ahead token if don't already have one. */ - case 52: -#line 100 "third_party/libpg_query/grammar/statements/alter_table.y" + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) { - (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); - ;} - break; + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } - case 53: -#line 104 "third_party/libpg_query/grammar/statements/alter_table.y" + if (yychar <= YYEOF) { - (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} - break; - - case 54: -#line 108 "third_party/libpg_query/grammar/statements/alter_table.y" + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else { - if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 || - strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 || - strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname), - parser_errposition((yylsp[(2) - (2)])))); - (yyval.defelt) = (yyvsp[(2) - (2)].defelt); - ;} - break; + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } - case 55: -#line 119 "third_party/libpg_query/grammar/statements/alter_table.y" + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) { - (yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); - ;} - break; + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } - case 56: -#line 127 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); - ;} - break; + if (yyn == YYFINAL) + YYACCEPT; - case 57: -#line 131 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); - ;} - break; + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; - case 58: -#line 140 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(2) - (2)].node); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - case 59: -#line 149 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(5) - (5)].node); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; - case 60: -#line 158 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(3) - (3)].node); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} - break; + yystate = yyn; + *++yyvsp = yylval; + *++yylsp = yylloc; + goto yynewstate; - case 61: -#line 167 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddColumn; - n->def = (yyvsp[(6) - (6)].node); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} - break; - case 62: -#line 176 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ColumnDefault; - n->name = (yyvsp[(3) - (4)].str); - n->def = (yyvsp[(4) - (4)].node); - (yyval.node) = (PGNode *)n; - ;} - break; +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; - case 63: -#line 185 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropNotNull; - n->name = (yyvsp[(3) - (6)].str); - (yyval.node) = (PGNode *)n; - ;} - break; - case 64: -#line 193 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetNotNull; - n->name = (yyvsp[(3) - (6)].str); - (yyval.node) = (PGNode *)n; - ;} - break; +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. - case 65: -#line 201 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetStatistics; - n->name = (yyvsp[(3) - (6)].str); - n->def = (PGNode *) makeInteger((yyvsp[(6) - (6)].ival)); - (yyval.node) = (PGNode *)n; - ;} - break; + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; - case 66: -#line 210 "third_party/libpg_query/grammar/statements/alter_table.y" + /* Default location. */ + YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); + YY_REDUCE_PRINT (yyn); + switch (yyn) { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetOptions; - n->name = (yyvsp[(3) - (5)].str); - n->def = (PGNode *) (yyvsp[(5) - (5)].list); - (yyval.node) = (PGNode *)n; - ;} + case 2: +#line 466 "third_party/libpg_query/grammar/grammar.y" + { + pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); + ;} break; - case 67: -#line 219 "third_party/libpg_query/grammar/statements/alter_table.y" + case 3: +#line 482 "third_party/libpg_query/grammar/grammar.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ResetOptions; - n->name = (yyvsp[(3) - (5)].str); - n->def = (PGNode *) (yyvsp[(5) - (5)].list); - (yyval.node) = (PGNode *)n; + if ((yyvsp[(1) - (3)].list) != NIL) + { + /* update length of previous stmt */ + updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)])); + } + if ((yyvsp[(3) - (3)].node) != NULL) + (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1)); + else + (yyval.list) = (yyvsp[(1) - (3)].list); ;} break; - case 68: -#line 228 "third_party/libpg_query/grammar/statements/alter_table.y" + case 4: +#line 494 "third_party/libpg_query/grammar/grammar.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetStorage; - n->name = (yyvsp[(3) - (6)].str); - n->def = (PGNode *) makeString((yyvsp[(6) - (6)].str)); - (yyval.node) = (PGNode *)n; + if ((yyvsp[(1) - (1)].node) != NULL) + (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0)); + else + (yyval.list) = NIL; ;} break; - case 69: -#line 237 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - PGConstraint *c = makeNode(PGConstraint); - - c->contype = PG_CONSTR_IDENTITY; - c->generated_when = (yyvsp[(6) - (9)].ival); - c->options = (yyvsp[(9) - (9)].list); - c->location = (yylsp[(5) - (9)]); - - n->subtype = PG_AT_AddIdentity; - n->name = (yyvsp[(3) - (9)].str); - n->def = (PGNode *) c; - - (yyval.node) = (PGNode *)n; - ;} + case 39: +#line 537 "third_party/libpg_query/grammar/grammar.y" + { (yyval.node) = NULL; ;} break; - case 70: -#line 254 "third_party/libpg_query/grammar/statements/alter_table.y" + case 40: +#line 10 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetIdentity; - n->name = (yyvsp[(3) - (4)].str); - n->def = (PGNode *) (yyvsp[(4) - (4)].list); + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[(2) - (6)].objtype); + n->missing_ok = true; + n->objects = (yyvsp[(5) - (6)].list); + n->behavior = (yyvsp[(6) - (6)].dbehavior); + n->concurrent = false; (yyval.node) = (PGNode *)n; ;} break; - case 71: -#line 263 "third_party/libpg_query/grammar/statements/alter_table.y" + case 41: +#line 20 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = AT_DropIdentity; - n->name = (yyvsp[(3) - (5)].str); + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[(2) - (4)].objtype); n->missing_ok = false; + n->objects = (yyvsp[(3) - (4)].list); + n->behavior = (yyvsp[(4) - (4)].dbehavior); + n->concurrent = false; (yyval.node) = (PGNode *)n; ;} break; - case 72: -#line 272 "third_party/libpg_query/grammar/statements/alter_table.y" + case 42: +#line 30 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = AT_DropIdentity; - n->name = (yyvsp[(3) - (7)].str); + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[(2) - (6)].objtype); n->missing_ok = true; + n->objects = (yyvsp[(5) - (6)].list); + n->behavior = (yyvsp[(6) - (6)].dbehavior); + n->concurrent = false; (yyval.node) = (PGNode *)n; ;} break; - case 73: -#line 281 "third_party/libpg_query/grammar/statements/alter_table.y" + case 43: +#line 40 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropColumn; - n->name = (yyvsp[(5) - (6)].str); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->missing_ok = true; + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[(2) - (4)].objtype); + n->missing_ok = false; + n->objects = (yyvsp[(3) - (4)].list); + n->behavior = (yyvsp[(4) - (4)].dbehavior); + n->concurrent = false; (yyval.node) = (PGNode *)n; ;} break; - case 74: -#line 291 "third_party/libpg_query/grammar/statements/alter_table.y" + case 44: +#line 50 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropColumn; - n->name = (yyvsp[(3) - (4)].str); - n->behavior = (yyvsp[(4) - (4)].dbehavior); + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[(2) - (6)].objtype); + n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); + n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; - (yyval.node) = (PGNode *)n; + n->concurrent = false; + (yyval.node) = (PGNode *) n; ;} break; - case 75: -#line 304 "third_party/libpg_query/grammar/statements/alter_table.y" + case 45: +#line 60 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - PGColumnDef *def = makeNode(PGColumnDef); - n->subtype = PG_AT_AlterColumnType; - n->name = (yyvsp[(3) - (8)].str); - n->def = (PGNode *) def; - /* We only use these fields of the PGColumnDef node */ - def->typeName = (yyvsp[(6) - (8)].typnam); - def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node); - def->raw_default = (yyvsp[(8) - (8)].node); - def->location = (yylsp[(3) - (8)]); - (yyval.node) = (PGNode *)n; + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = (yyvsp[(2) - (8)].objtype); + n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); + n->behavior = (yyvsp[(8) - (8)].dbehavior); + n->missing_ok = true; + n->concurrent = false; + (yyval.node) = (PGNode *) n; ;} break; - case 76: -#line 319 "third_party/libpg_query/grammar/statements/alter_table.y" + case 46: +#line 70 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AlterColumnGenericOptions; - n->name = (yyvsp[(3) - (4)].str); - n->def = (PGNode *) (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = PG_OBJECT_TYPE; + n->missing_ok = false; + n->objects = (yyvsp[(3) - (4)].list); + n->behavior = (yyvsp[(4) - (4)].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *) n; ;} break; - case 77: -#line 328 "third_party/libpg_query/grammar/statements/alter_table.y" + case 47: +#line 80 "third_party/libpg_query/grammar/statements/drop.y" { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_AddConstraint; - n->def = (yyvsp[(2) - (2)].node); - (yyval.node) = (PGNode *)n; + PGDropStmt *n = makeNode(PGDropStmt); + n->removeType = PG_OBJECT_TYPE; + n->missing_ok = true; + n->objects = (yyvsp[(5) - (6)].list); + n->behavior = (yyvsp[(6) - (6)].dbehavior); + n->concurrent = false; + (yyval.node) = (PGNode *) n; ;} break; - case 78: -#line 336 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - PGConstraint *c = makeNode(PGConstraint); - n->subtype = PG_AT_AlterConstraint; - n->def = (PGNode *) c; - c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */ - c->conname = (yyvsp[(3) - (4)].str); - processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "ALTER CONSTRAINT statement", - &c->deferrable, - &c->initdeferred, - NULL, NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} + case 48: +#line 93 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TABLE; ;} break; - case 79: -#line 351 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ValidateConstraint; - n->name = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *)n; - ;} + case 49: +#line 94 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;} break; - case 80: -#line 359 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropConstraint; - n->name = (yyvsp[(5) - (6)].str); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 50: +#line 95 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} break; - case 81: -#line 369 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_DropConstraint; - n->name = (yyvsp[(3) - (4)].str); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 51: +#line 96 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} break; - case 82: -#line 379 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetLogged; - (yyval.node) = (PGNode *)n; - ;} + case 52: +#line 97 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_VIEW; ;} break; - case 83: -#line 386 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetUnLogged; - (yyval.node) = (PGNode *)n; - ;} + case 53: +#line 98 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_MATVIEW; ;} break; - case 84: -#line 393 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_SetRelOptions; - n->def = (PGNode *)(yyvsp[(2) - (2)].list); - (yyval.node) = (PGNode *)n; - ;} + case 54: +#line 99 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_INDEX; ;} break; - case 85: -#line 401 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_ResetRelOptions; - n->def = (PGNode *)(yyvsp[(2) - (2)].list); - (yyval.node) = (PGNode *)n; - ;} + case 55: +#line 100 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;} break; - case 86: -#line 408 "third_party/libpg_query/grammar/statements/alter_table.y" - { - PGAlterTableCmd *n = makeNode(PGAlterTableCmd); - n->subtype = PG_AT_GenericOptions; - n->def = (PGNode *)(yyvsp[(1) - (1)].list); - (yyval.node) = (PGNode *) n; - ;} + case 56: +#line 101 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_COLLATION; ;} break; - case 87: -#line 418 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + case 57: +#line 102 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_CONVERSION; ;} break; - case 88: -#line 419 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.node) = NULL; ;} + case 58: +#line 103 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;} break; - case 89: -#line 425 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = (yyvsp[(1) - (1)].defelt); - ;} + case 59: +#line 104 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSPARSER; ;} break; - case 90: -#line 429 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = (yyvsp[(2) - (2)].defelt); - (yyval.defelt)->defaction = PG_DEFELEM_SET; - ;} + case 60: +#line 105 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;} break; - case 91: -#line 434 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = (yyvsp[(2) - (2)].defelt); - (yyval.defelt)->defaction = PG_DEFELEM_ADD; - ;} + case 61: +#line 106 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;} break; - case 92: -#line 439 "third_party/libpg_query/grammar/statements/alter_table.y" - { - (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); - ;} + case 62: +#line 107 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;} break; - case 93: -#line 446 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} + case 63: +#line 112 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;} break; - case 94: -#line 447 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} + case 64: +#line 113 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;} break; - case 95: -#line 452 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} + case 65: +#line 114 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_EXTENSION; ;} break; - case 96: -#line 456 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.ival) = 1; ;} + case 66: +#line 115 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FDW; ;} break; - case 97: -#line 457 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.ival) = 0; ;} + case 67: +#line 116 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;} break; - case 98: -#line 458 "third_party/libpg_query/grammar/statements/alter_table.y" - { (yyval.ival) = 0; ;} + case 68: +#line 117 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_SCHEMA; ;} break; - case 99: -#line 8 "third_party/libpg_query/grammar/statements/export.y" - { - PGExportStmt *n = makeNode(PGExportStmt); - n->filename = (yyvsp[(3) - (4)].str); - n->options = NIL; - if ((yyvsp[(4) - (4)].list)) { - n->options = list_concat(n->options, (yyvsp[(4) - (4)].list)); - } - (yyval.node) = (PGNode *)n; - ;} + case 69: +#line 118 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;} break; - case 100: -#line 21 "third_party/libpg_query/grammar/statements/export.y" - { - PGImportStmt *n = makeNode(PGImportStmt); - n->filename = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *)n; - ;} + case 70: +#line 123 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; - case 101: -#line 8 "third_party/libpg_query/grammar/statements/pragma.y" - { - PGPragmaStmt *n = makeNode(PGPragmaStmt); - n->kind = PG_PRAGMA_TYPE_NOTHING; - n->name = (yyvsp[(2) - (2)].str); - (yyval.node) = (PGNode *)n; - ;} + case 71: +#line 124 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; - case 102: -#line 15 "third_party/libpg_query/grammar/statements/pragma.y" - { - PGPragmaStmt *n = makeNode(PGPragmaStmt); - n->kind = PG_PRAGMA_TYPE_ASSIGNMENT; - n->name = (yyvsp[(2) - (4)].str); - n->args = (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; - ;} + case 72: +#line 129 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.dbehavior) = PG_DROP_CASCADE; ;} break; - case 103: -#line 23 "third_party/libpg_query/grammar/statements/pragma.y" - { - PGPragmaStmt *n = makeNode(PGPragmaStmt); - n->kind = PG_PRAGMA_TYPE_CALL; - n->name = (yyvsp[(2) - (5)].str); - n->args = (yyvsp[(4) - (5)].list); - (yyval.node) = (PGNode *)n; - ;} + case 73: +#line 130 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.dbehavior) = PG_DROP_RESTRICT; ;} break; - case 104: -#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(3) - (6)].range); - n->newschema = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 74: +#line 131 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;} break; - case 105: -#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(5) - (8)].range); - n->newschema = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 75: +#line 136 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_POLICY; ;} break; - case 106: -#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(3) - (6)].range); - n->newschema = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 76: +#line 137 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_RULE; ;} break; - case 107: -#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(5) - (8)].range); - n->newschema = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 77: +#line 138 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.objtype) = PG_OBJECT_TRIGGER; ;} break; - case 108: -#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(3) - (6)].range); - n->newschema = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 78: +#line 141 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; - case 109: -#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y" - { - PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); - n->objectType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(5) - (8)].range); - n->newschema = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 79: +#line 142 "third_party/libpg_query/grammar/statements/drop.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; - case 110: + case 80: #line 10 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -16266,7 +15859,7 @@ YYLTYPE yylloc; ;} break; - case 111: + case 81: #line 17 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -16279,7 +15872,7 @@ YYLTYPE yylloc; ;} break; - case 112: + case 82: #line 27 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -16289,7 +15882,7 @@ YYLTYPE yylloc; ;} break; - case 113: + case 83: #line 34 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -16299,8227 +15892,8668 @@ YYLTYPE yylloc; ;} break; - case 114: + case 84: #line 44 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.boolean) = true; ;} break; - case 115: + case 85: #line 45 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.boolean) = false; ;} break; - case 116: + case 86: #line 50 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} break; - case 117: + case 87: #line 51 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;} break; - case 118: + case 88: #line 52 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = NULL; ;} break; - case 124: + case 94: #line 65 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 125: + case 95: #line 66 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 126: + case 96: #line 67 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 127: + case 97: #line 72 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 128: + case 98: #line 73 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 129: + case 99: #line 79 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; - case 130: + case 100: #line 83 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; - case 131: + case 101: #line 90 "third_party/libpg_query/grammar/statements/explain.y" {;} break; - case 132: + case 102: #line 91 "third_party/libpg_query/grammar/statements/explain.y" {;} break; - case 133: + case 103: #line 96 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "true"; ;} break; - case 134: + case 104: #line 97 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "false"; ;} break; - case 135: + case 105: #line 98 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "on"; ;} break; - case 136: + case 106: #line 104 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 137: + case 107: #line 110 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 138: + case 108: #line 117 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 139: + case 109: #line 118 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "analyze"; ;} break; - case 140: -#line 8 "third_party/libpg_query/grammar/statements/load.y" - { - PGLoadStmt *n = makeNode(PGLoadStmt); - n->filename = (yyvsp[(2) - (2)].str); - n->load_type = PG_LOAD_TYPE_LOAD; - (yyval.node) = (PGNode *)n; - ;} + case 112: +#line 52 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; - case 141: -#line 14 "third_party/libpg_query/grammar/statements/load.y" - { - PGLoadStmt *n = makeNode(PGLoadStmt); - n->filename = (yyvsp[(2) - (2)].str); - n->load_type = PG_LOAD_TYPE_INSTALL; - (yyval.node) = (PGNode *)n; - ;} + case 113: +#line 53 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; - case 142: -#line 20 "third_party/libpg_query/grammar/statements/load.y" - { - PGLoadStmt *n = makeNode(PGLoadStmt); - n->filename = (yyvsp[(3) - (3)].str); - n->load_type = PG_LOAD_TYPE_FORCE_INSTALL; - (yyval.node) = (PGNode *)n; - ;} + case 114: +#line 68 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 143: -#line 28 "third_party/libpg_query/grammar/statements/load.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + case 115: +#line 70 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, + NULL, NULL, NULL, + yyscanner); + (yyval.node) = (yyvsp[(1) - (2)].node); + ;} break; - case 144: -#line 29 "third_party/libpg_query/grammar/statements/load.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + case 116: +#line 77 "third_party/libpg_query/grammar/statements/select.y" + { + insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), + (PGNode*) list_nth((yyvsp[(4) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 1), + NULL, + yyscanner); + (yyval.node) = (yyvsp[(1) - (4)].node); + ;} break; - case 145: -#line 10 "third_party/libpg_query/grammar/statements/analyze.y" + case 117: +#line 85 "third_party/libpg_query/grammar/statements/select.y" { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_ANALYZE; - if ((yyvsp[(2) - (2)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = NULL; - n->va_cols = NIL; - (yyval.node) = (PGNode *)n; + insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), + (PGNode*) list_nth((yyvsp[(3) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 1), + NULL, + yyscanner); + (yyval.node) = (yyvsp[(1) - (4)].node); ;} break; - case 146: -#line 20 "third_party/libpg_query/grammar/statements/analyze.y" + case 118: +#line 93 "third_party/libpg_query/grammar/statements/select.y" { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_ANALYZE; - if ((yyvsp[(2) - (4)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = (yyvsp[(3) - (4)].range); - n->va_cols = (yyvsp[(4) - (4)].list); - (yyval.node) = (PGNode *)n; + insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, + NULL, NULL, + (yyvsp[(1) - (2)].with), + yyscanner); + (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 147: -#line 10 "third_party/libpg_query/grammar/statements/insert.y" + case 119: +#line 101 "third_party/libpg_query/grammar/statements/select.y" { - (yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range); - (yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict); - (yyvsp[(5) - (7)].istmt)->returningList = (yyvsp[(7) - (7)].list); - (yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with); - (yyval.node) = (PGNode *) (yyvsp[(5) - (7)].istmt); + insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, + NULL, NULL, + (yyvsp[(1) - (3)].with), + yyscanner); + (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; - case 148: -#line 22 "third_party/libpg_query/grammar/statements/insert.y" + case 120: +#line 109 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = NIL; - (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); + insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), + (PGNode*) list_nth((yyvsp[(5) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 1), + (yyvsp[(1) - (5)].with), + yyscanner); + (yyval.node) = (yyvsp[(2) - (5)].node); ;} break; - case 149: -#line 28 "third_party/libpg_query/grammar/statements/insert.y" + case 121: +#line 117 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = NIL; - (yyval.istmt)->override = (yyvsp[(2) - (4)].override); - (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); + insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), + (PGNode*) list_nth((yyvsp[(4) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 1), + (yyvsp[(1) - (5)].with), + yyscanner); + (yyval.node) = (yyvsp[(2) - (5)].node); ;} break; - case 150: -#line 35 "third_party/libpg_query/grammar/statements/insert.y" + case 122: +#line 127 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + break; + + case 123: +#line 128 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + break; + + case 124: +#line 158 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); - (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); + PGSelectStmt *n = makeNode(PGSelectStmt); + n->targetList = (yyvsp[(3) - (11)].list); + n->intoClause = (yyvsp[(4) - (11)].into); + n->fromClause = (yyvsp[(5) - (11)].list); + n->whereClause = (yyvsp[(6) - (11)].node); + n->groupClause = (yyvsp[(7) - (11)].list); + n->havingClause = (yyvsp[(8) - (11)].node); + n->windowClause = (yyvsp[(9) - (11)].list); + n->qualifyClause = (yyvsp[(10) - (11)].node); + n->sampleOptions = (yyvsp[(11) - (11)].node); + (yyval.node) = (PGNode *)n; ;} break; - case 151: -#line 41 "third_party/libpg_query/grammar/statements/insert.y" + case 125: +#line 174 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = (yyvsp[(2) - (7)].list); - (yyval.istmt)->override = (yyvsp[(5) - (7)].override); - (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node); + PGSelectStmt *n = makeNode(PGSelectStmt); + n->distinctClause = (yyvsp[(2) - (11)].list); + n->targetList = (yyvsp[(3) - (11)].list); + n->intoClause = (yyvsp[(4) - (11)].into); + n->fromClause = (yyvsp[(5) - (11)].list); + n->whereClause = (yyvsp[(6) - (11)].node); + n->groupClause = (yyvsp[(7) - (11)].list); + n->havingClause = (yyvsp[(8) - (11)].node); + n->windowClause = (yyvsp[(9) - (11)].list); + n->qualifyClause = (yyvsp[(10) - (11)].node); + n->sampleOptions = (yyvsp[(11) - (11)].node); + (yyval.node) = (PGNode *)n; ;} break; - case 152: -#line 48 "third_party/libpg_query/grammar/statements/insert.y" + case 126: +#line 188 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + break; + + case 127: +#line 190 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.istmt) = makeNode(PGInsertStmt); - (yyval.istmt)->cols = NIL; - (yyval.istmt)->selectStmt = NULL; + /* same as SELECT * FROM relation_expr */ + PGColumnRef *cr = makeNode(PGColumnRef); + PGResTarget *rt = makeNode(PGResTarget); + PGSelectStmt *n = makeNode(PGSelectStmt); + + cr->fields = list_make1(makeNode(PGAStar)); + cr->location = -1; + + rt->name = NULL; + rt->indirection = NIL; + rt->val = (PGNode *)cr; + rt->location = -1; + + n->targetList = list_make1(rt); + n->fromClause = list_make1((yyvsp[(2) - (2)].range)); + (yyval.node) = (PGNode *)n; ;} break; - case 153: -#line 58 "third_party/libpg_query/grammar/statements/insert.y" + case 128: +#line 209 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.range) = (yyvsp[(1) - (1)].range); + (yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; - case 154: -#line 62 "third_party/libpg_query/grammar/statements/insert.y" + case 129: +#line 213 "third_party/libpg_query/grammar/statements/select.y" { - (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); - (yyval.range) = (yyvsp[(1) - (3)].range); + (yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; - case 155: -#line 71 "third_party/libpg_query/grammar/statements/insert.y" + case 130: +#line 217 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.infer) = makeNode(PGInferClause); - (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list); - (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node); - (yyval.infer)->conname = NULL; - (yyval.infer)->location = (yylsp[(1) - (4)]); + (yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; - case 156: -#line 80 "third_party/libpg_query/grammar/statements/insert.y" + case 131: +#line 234 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.infer) = makeNode(PGInferClause); - (yyval.infer)->indexElems = NIL; - (yyval.infer)->whereClause = NULL; - (yyval.infer)->conname = (yyvsp[(3) - (3)].str); - (yyval.infer)->location = (yylsp[(1) - (3)]); - ;} + (yyval.with) = makeNode(PGWithClause); + (yyval.with)->ctes = (yyvsp[(2) - (2)].list); + (yyval.with)->recursive = false; + (yyval.with)->location = (yylsp[(1) - (2)]); + ;} break; - case 157: -#line 88 "third_party/libpg_query/grammar/statements/insert.y" + case 132: +#line 241 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.infer) = NULL; - ;} + (yyval.with) = makeNode(PGWithClause); + (yyval.with)->ctes = (yyvsp[(2) - (2)].list); + (yyval.with)->recursive = false; + (yyval.with)->location = (yylsp[(1) - (2)]); + ;} break; - case 158: -#line 95 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.with) = (yyvsp[(1) - (1)].with); ;} + case 133: +#line 248 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.with) = makeNode(PGWithClause); + (yyval.with)->ctes = (yyvsp[(3) - (3)].list); + (yyval.with)->recursive = true; + (yyval.with)->location = (yylsp[(1) - (3)]); + ;} break; - case 159: -#line 96 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.with) = NULL; ;} + case 134: +#line 257 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 160: -#line 102 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(1) - (2)].str); - (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.target)->val = NULL; - (yyval.target)->location = (yylsp[(1) - (2)]); - ;} + case 135: +#line 258 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 161: -#line 114 "third_party/libpg_query/grammar/statements/insert.y" + case 136: +#line 262 "third_party/libpg_query/grammar/statements/select.y" { - (yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node); - (yyval.list) = list_make1((yyvsp[(1) - (3)].target)); - ;} + PGCommonTableExpr *n = makeNode(PGCommonTableExpr); + n->ctename = (yyvsp[(1) - (6)].str); + n->aliascolnames = (yyvsp[(2) - (6)].list); + n->ctequery = (yyvsp[(5) - (6)].node); + n->location = (yylsp[(1) - (6)]); + (yyval.node) = (PGNode *) n; + ;} break; - case 162: -#line 119 "third_party/libpg_query/grammar/statements/insert.y" + case 137: +#line 274 "third_party/libpg_query/grammar/statements/select.y" { - int ncolumns = list_length((yyvsp[(2) - (5)].list)); - int i = 1; - PGListCell *col_cell; - - /* Create a PGMultiAssignRef source for each target */ - foreach(col_cell, (yyvsp[(2) - (5)].list)) - { - PGResTarget *res_col = (PGResTarget *) lfirst(col_cell); - PGMultiAssignRef *r = makeNode(PGMultiAssignRef); - - r->source = (PGNode *) (yyvsp[(5) - (5)].node); - r->colno = i; - r->ncolumns = ncolumns; - res_col->val = (PGNode *) r; - i++; - } - - (yyval.list) = (yyvsp[(2) - (5)].list); + (yyval.into) = makeNode(PGIntoClause); + (yyval.into)->rel = (yyvsp[(2) - (2)].range); + (yyval.into)->colNames = NIL; + (yyval.into)->options = NIL; + (yyval.into)->onCommit = PG_ONCOMMIT_NOOP; + (yyval.into)->viewQuery = NULL; + (yyval.into)->skipData = false; ;} break; - case 163: -#line 144 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyval.onconflict) = makeNode(PGOnConflictClause); - (yyval.onconflict)->action = PG_ONCONFLICT_UPDATE; - (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer); - (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list); - (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node); - (yyval.onconflict)->location = (yylsp[(1) - (8)]); - ;} + case 138: +#line 284 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.into) = NULL; ;} break; - case 164: -#line 154 "third_party/libpg_query/grammar/statements/insert.y" + case 139: +#line 293 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.onconflict) = makeNode(PGOnConflictClause); - (yyval.onconflict)->action = PG_ONCONFLICT_NOTHING; - (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer); - (yyval.onconflict)->targetList = NIL; - (yyval.onconflict)->whereClause = NULL; - (yyval.onconflict)->location = (yylsp[(1) - (5)]); + (yyval.range) = (yyvsp[(3) - (3)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; ;} break; - case 165: -#line 163 "third_party/libpg_query/grammar/statements/insert.y" + case 140: +#line 298 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.onconflict) = NULL; + (yyval.range) = (yyvsp[(3) - (3)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; ;} break; - case 166: -#line 170 "third_party/libpg_query/grammar/statements/insert.y" + case 141: +#line 303 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.ielem) = makeNode(PGIndexElem); - (yyval.ielem)->name = (yyvsp[(1) - (5)].str); - (yyval.ielem)->expr = NULL; - (yyval.ielem)->indexcolname = NULL; - (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); - (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); - (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder); - (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder); + (yyval.range) = (yyvsp[(4) - (4)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; ;} break; - case 167: -#line 181 "third_party/libpg_query/grammar/statements/insert.y" + case 142: +#line 308 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.ielem) = makeNode(PGIndexElem); - (yyval.ielem)->name = NULL; - (yyval.ielem)->expr = (yyvsp[(1) - (5)].node); - (yyval.ielem)->indexcolname = NULL; - (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); - (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); - (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder); - (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder); + (yyval.range) = (yyvsp[(4) - (4)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; ;} break; - case 168: -#line 192 "third_party/libpg_query/grammar/statements/insert.y" + case 143: +#line 313 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.ielem) = makeNode(PGIndexElem); - (yyval.ielem)->name = NULL; - (yyval.ielem)->expr = (yyvsp[(2) - (7)].node); - (yyval.ielem)->indexcolname = NULL; - (yyval.ielem)->collation = (yyvsp[(4) - (7)].list); - (yyval.ielem)->opclass = (yyvsp[(5) - (7)].list); - (yyval.ielem)->ordering = (yyvsp[(6) - (7)].sortorder); - (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder); + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[(1) - (4)])))); + (yyval.range) = (yyvsp[(4) - (4)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; ;} break; - case 169: -#line 206 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} - break; - - case 170: -#line 207 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = NIL; ;} + case 144: +#line 321 "third_party/libpg_query/grammar/statements/select.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[(1) - (4)])))); + (yyval.range) = (yyvsp[(4) - (4)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + ;} break; - case 171: -#line 213 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;} + case 145: +#line 329 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[(3) - (3)].range); + (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED; + ;} break; - case 172: -#line 214 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;} + case 146: +#line 334 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[(2) - (2)].range); + (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; + ;} break; - case 173: -#line 219 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} + case 147: +#line 339 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = (yyvsp[(1) - (1)].range); + (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; + ;} break; - case 174: -#line 220 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} + case 148: +#line 345 "third_party/libpg_query/grammar/statements/select.y" + {;} break; - case 175: -#line 226 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} + case 149: +#line 346 "third_party/libpg_query/grammar/statements/select.y" + {;} break; - case 176: -#line 227 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = NIL; ;} + case 150: +#line 350 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; ;} break; - case 177: -#line 231 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + case 151: +#line 351 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; ;} break; - case 178: -#line 232 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = NIL; ;} + case 152: +#line 352 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; ;} break; - case 179: -#line 238 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} + case 153: +#line 359 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(NIL); ;} break; - case 180: -#line 240 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} + case 154: +#line 360 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; - case 181: -#line 245 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + case 155: +#line 364 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL;;} break; - case 182: -#line 246 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} + case 156: +#line 365 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - case 183: -#line 250 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} + case 157: +#line 369 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true;;} break; - case 184: -#line 251 "third_party/libpg_query/grammar/statements/insert.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} + case 158: +#line 370 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false;;} break; - case 185: -#line 257 "third_party/libpg_query/grammar/statements/insert.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(1) - (2)].str); - (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.target)->val = NULL; /* upper production sets this */ - (yyval.target)->location = (yylsp[(1) - (2)]); - ;} + case 159: +#line 371 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; ;} break; - case 186: -#line 7 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_SCHEMA; - n->subname = (yyvsp[(3) - (6)].str); - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 160: +#line 375 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list);;} break; - case 187: -#line 16 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 161: +#line 376 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - case 188: -#line 26 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 162: +#line 380 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; - case 189: -#line 36 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 163: +#line 384 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} break; - case 190: -#line 46 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_SEQUENCE; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 164: +#line 385 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} break; - case 191: -#line 56 "third_party/libpg_query/grammar/statements/rename.y" + case 165: +#line 389 "third_party/libpg_query/grammar/statements/select.y" { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; + (yyval.sortby) = makeNode(PGSortBy); + (yyval.sortby)->node = (yyvsp[(1) - (4)].node); + (yyval.sortby)->sortby_dir = SORTBY_USING; + (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder); + (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list); + (yyval.sortby)->location = (yylsp[(3) - (4)]); ;} break; - case 192: -#line 66 "third_party/libpg_query/grammar/statements/rename.y" + case 166: +#line 398 "third_party/libpg_query/grammar/statements/select.y" { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_VIEW; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; + (yyval.sortby) = makeNode(PGSortBy); + (yyval.sortby)->node = (yyvsp[(1) - (3)].node); + (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder); + (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder); + (yyval.sortby)->useOp = NIL; + (yyval.sortby)->location = -1; /* no operator */ ;} break; - case 193: -#line 76 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_INDEX; - n->relation = (yyvsp[(3) - (6)].range); - n->subname = NULL; - n->newname = (yyvsp[(6) - (6)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 167: +#line 408 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.sortorder) = PG_SORTBY_ASC; ;} break; - case 194: -#line 86 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_INDEX; - n->relation = (yyvsp[(5) - (8)].range); - n->subname = NULL; - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 168: +#line 409 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.sortorder) = PG_SORTBY_DESC; ;} break; - case 195: -#line 96 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_COLUMN; - n->relationType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(3) - (8)].range); - n->subname = (yyvsp[(6) - (8)].str); - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 169: +#line 410 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;} break; - case 196: -#line 107 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_COLUMN; - n->relationType = PG_OBJECT_TABLE; - n->relation = (yyvsp[(5) - (10)].range); - n->subname = (yyvsp[(8) - (10)].str); - n->newname = (yyvsp[(10) - (10)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 170: +#line 413 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;} break; - case 197: -#line 118 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABCONSTRAINT; - n->relation = (yyvsp[(3) - (8)].range); - n->subname = (yyvsp[(6) - (8)].str); - n->newname = (yyvsp[(8) - (8)].str); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 171: +#line 414 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; ;} break; - case 198: -#line 128 "third_party/libpg_query/grammar/statements/rename.y" - { - PGRenameStmt *n = makeNode(PGRenameStmt); - n->renameType = PG_OBJECT_TABCONSTRAINT; - n->relation = (yyvsp[(5) - (10)].range); - n->subname = (yyvsp[(8) - (10)].str); - n->newname = (yyvsp[(10) - (10)].str); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 172: +#line 415 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;} break; - case 199: -#line 140 "third_party/libpg_query/grammar/statements/rename.y" - { (yyval.ival) = COLUMN; ;} + case 173: +#line 419 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;} break; - case 200: -#line 141 "third_party/libpg_query/grammar/statements/rename.y" - { (yyval.ival) = 0; ;} + case 174: +#line 420 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} break; - case 201: -#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); - n->sequence = (yyvsp[(3) - (4)].range); - n->options = (yyvsp[(4) - (4)].list); - n->missing_ok = false; - (yyval.node) = (PGNode *)n; - ;} + case 175: +#line 421 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;} break; - case 202: -#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); - n->sequence = (yyvsp[(5) - (6)].range); - n->options = (yyvsp[(6) - (6)].list); - n->missing_ok = true; - (yyval.node) = (PGNode *)n; - ;} + case 176: +#line 422 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;} break; - case 203: -#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} + case 177: +#line 426 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 204: -#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} + case 178: +#line 427 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2(NULL,NULL); ;} break; - case 205: -#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} + case 179: +#line 432 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 206: -#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} + case 180: +#line 434 "third_party/libpg_query/grammar/statements/select.y" + { + /* Disabled because it was too confusing, bjm 2002-02-18 */ + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("LIMIT #,# syntax is not supported"), + errhint("Use separate LIMIT and OFFSET clauses."), + parser_errposition((yylsp[(1) - (4)])))); + ;} break; - case 207: -#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} + case 181: +#line 450 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(3) - (5)].node); ;} break; - case 208: -#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;} + case 182: +#line 452 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeIntConst(1, -1); ;} break; - case 209: -#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); ;} + case 183: +#line 457 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 210: -#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); - doNegateFloat((yyval.value)); - ;} + case 184: +#line 460 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; - case 211: -#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;} + case 185: +#line 468 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); + ;} break; - case 212: -#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 186: +#line 472 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)])); - ;} + (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); + ;} break; - case 213: -#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 187: +#line 476 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); - ;} + (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); + ;} break; - case 214: -#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 188: +#line 480 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} + (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); + ;} break; - case 215: -#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 189: +#line 484 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[(1) - (2)])); - ;} + (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (1)].ival)), false); + ;} break; - case 216: -#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 190: +#line 488 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} + (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), false); + ;} break; - case 217: -#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 191: +#line 495 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); + (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; - case 218: -#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); - ;} + case 192: +#line 499 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 219: -#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)])); - ;} + case 193: +#line 506 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 220: -#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { - (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)])); - ;} + case 194: +#line 507 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = NULL; ;} break; - case 221: -#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 195: +#line 512 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + (yyval.node) = makeSampleOptions((yyvsp[(3) - (5)].node), (yyvsp[(1) - (5)].str), (yyvsp[(5) - (5)].ival), (yylsp[(1) - (5)])); ;} break; - case 222: -#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 196: +#line 516 "third_party/libpg_query/grammar/statements/select.y" { - /* not documented, only used by pg_dump */ - (yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); - ;} + (yyval.node) = makeSampleOptions((yyvsp[(1) - (1)].node), NULL, -1, (yylsp[(1) - (1)])); + ;} break; - case 223: -#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 197: +#line 520 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); - ;} + (yyval.node) = makeSampleOptions((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].str), -1, (yylsp[(1) - (4)])); + ;} break; - case 224: -#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 198: +#line 524 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); - ;} + (yyval.node) = makeSampleOptions((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].str), (yyvsp[(5) - (6)].ival), (yylsp[(1) - (6)])); + ;} break; - case 225: -#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y" + case 199: +#line 531 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); + (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 226: -#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} + case 200: +#line 537 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 227: -#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y" - {;} + case 201: +#line 538 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 228: -#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} + case 202: +#line 543 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;} break; - case 229: -#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} + case 203: +#line 544 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = -1; ;} break; - case 230: -#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y" - { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} + case 204: +#line 548 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 231: -#line 9 "third_party/libpg_query/grammar/statements/create.y" + case 205: +#line 550 "third_party/libpg_query/grammar/statements/select.y" { - PGCreateStmt *n = makeNode(PGCreateStmt); - (yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival); - n->relation = (yyvsp[(4) - (9)].range); - n->tableElts = (yyvsp[(6) - (9)].list); - n->ofTypename = NULL; - n->constraints = NIL; - n->options = (yyvsp[(8) - (9)].list); - n->oncommit = (yyvsp[(9) - (9)].oncommit); - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; + /* LIMIT ALL is represented as a NULL constant */ + (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; - case 232: -#line 24 "third_party/libpg_query/grammar/statements/create.y" - { - PGCreateStmt *n = makeNode(PGCreateStmt); - (yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival); - n->relation = (yyvsp[(7) - (12)].range); - n->tableElts = (yyvsp[(9) - (12)].list); - n->ofTypename = NULL; - n->constraints = NIL; - n->options = (yyvsp[(11) - (12)].list); - n->oncommit = (yyvsp[(12) - (12)].oncommit); - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} + case 206: +#line 555 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;} break; - case 233: -#line 39 "third_party/libpg_query/grammar/statements/create.y" - { - PGCreateStmt *n = makeNode(PGCreateStmt); - (yyvsp[(6) - (11)].range)->relpersistence = (yyvsp[(4) - (11)].ival); - n->relation = (yyvsp[(6) - (11)].range); - n->tableElts = (yyvsp[(8) - (11)].list); - n->ofTypename = NULL; - n->constraints = NIL; - n->options = (yyvsp[(10) - (11)].list); - n->oncommit = (yyvsp[(11) - (11)].oncommit); - n->onconflict = PG_REPLACE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; - ;} + case 207: +#line 557 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;} break; - case 234: -#line 56 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = 0; ;} + case 208: +#line 559 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;} break; - case 235: -#line 58 "third_party/libpg_query/grammar/statements/create.y" - { - /* - * We must complain about conflicting options. - * We could, but choose not to, complain about redundant - * options (ie, where $2's bit is already set in $1). - */ - int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival); + case 209: +#line 563 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + break; - /* special message for this case */ - if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), - parser_errposition((yylsp[(2) - (2)])))); - /* generic message for other conflicts */ - if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || - (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("conflicting constraint properties"), - parser_errposition((yylsp[(2) - (2)])))); - (yyval.ival) = newspec; - ;} + case 210: +#line 583 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 236: -#line 84 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;} + case 211: +#line 585 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 237: -#line 85 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} + case 212: +#line 587 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 238: -#line 86 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;} + case 213: +#line 591 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} break; - case 239: -#line 87 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;} + case 214: +#line 592 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} break; - case 240: -#line 88 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)makeString((yyvsp[(1) - (1)].str)); ;} + case 215: +#line 596 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; ;} break; - case 241: -#line 89 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} + case 216: +#line 597 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; ;} break; - case 242: -#line 93 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + case 217: +#line 600 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; ;} break; - case 243: -#line 94 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} + case 218: +#line 601 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; ;} break; - case 244: -#line 99 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} + case 219: +#line 626 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; - case 245: -#line 104 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;} + case 220: +#line 627 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - case 246: -#line 105 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;} + case 221: +#line 631 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 247: -#line 106 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;} + case 222: +#line 632 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} break; - case 248: -#line 107 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;} + case 223: +#line 636 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 249: -#line 108 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;} + case 224: +#line 637 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 250: -#line 114 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node)); - n->conname = (yyvsp[(2) - (3)].str); - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) n; - ;} + case 225: +#line 638 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 251: -#line 120 "third_party/libpg_query/grammar/statements/create.y" + case 226: +#line 639 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 252: -#line 121 "third_party/libpg_query/grammar/statements/create.y" + case 227: +#line 640 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 253: -#line 123 "third_party/libpg_query/grammar/statements/create.y" + case 228: +#line 645 "third_party/libpg_query/grammar/statements/select.y" { - /* - * Note: the PGCollateClause is momentarily included in - * the list built by ColQualList, but we split it out - * again in SplitColQualList. - */ - PGCollateClause *n = makeNode(PGCollateClause); - n->arg = NULL; - n->collname = (yyvsp[(2) - (2)].list); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *) n; + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); ;} break; - case 254: -#line 140 "third_party/libpg_query/grammar/statements/create.y" + case 229: +#line 658 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_NOTNULL; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; - case 255: -#line 147 "third_party/libpg_query/grammar/statements/create.y" + case 230: +#line 665 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_NULL; - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; - case 256: -#line 154 "third_party/libpg_query/grammar/statements/create.y" + case 231: +#line 672 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_UNIQUE; - n->location = (yylsp[(1) - (2)]); - n->keys = NULL; - n->options = (yyvsp[(2) - (2)].list); - n->indexname = NULL; - (yyval.node) = (PGNode *)n; + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; - case 257: -#line 164 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_PRIMARY; - n->location = (yylsp[(1) - (3)]); - n->keys = NULL; - n->options = (yyvsp[(3) - (3)].list); - n->indexname = NULL; - (yyval.node) = (PGNode *)n; - ;} + case 232: +#line 678 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 258: -#line 174 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_CHECK; - n->location = (yylsp[(1) - (5)]); - n->is_no_inherit = (yyvsp[(5) - (5)].boolean); - n->raw_expr = (yyvsp[(3) - (5)].node); - n->cooked_expr = NULL; - n->skip_validation = false; - n->initially_valid = true; - (yyval.node) = (PGNode *)n; - ;} + case 233: +#line 679 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 259: -#line 186 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_COMPRESSION; - n->location = (yylsp[(1) - (3)]); - n->compression_name = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *)n; - ;} + case 234: +#line 683 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 260: -#line 194 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_DEFAULT; - n->location = (yylsp[(1) - (2)]); - n->raw_expr = (yyvsp[(2) - (2)].node); - n->cooked_expr = NULL; - (yyval.node) = (PGNode *)n; - ;} + case 235: +#line 684 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 261: -#line 203 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_IDENTITY; - n->generated_when = (yyvsp[(2) - (5)].ival); - n->options = (yyvsp[(5) - (5)].list); - n->location = (yylsp[(1) - (5)]); - (yyval.node) = (PGNode *)n; - ;} + case 236: +#line 688 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 262: -#line 212 "third_party/libpg_query/grammar/statements/create.y" - { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_FOREIGN; - n->location = (yylsp[(1) - (5)]); - n->pktable = (yyvsp[(2) - (5)].range); - n->fk_attrs = NIL; - n->pk_attrs = (yyvsp[(3) - (5)].list); - n->fk_matchtype = (yyvsp[(4) - (5)].ival); - n->fk_upd_action = (char) ((yyvsp[(5) - (5)].ival) >> 8); - n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF); - n->skip_validation = false; - n->initially_valid = true; - (yyval.node) = (PGNode *)n; - ;} + case 237: +#line 689 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 263: -#line 231 "third_party/libpg_query/grammar/statements/create.y" + case 238: +#line 693 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + break; + + case 239: +#line 694 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} + break; + + case 240: +#line 698 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + break; + + case 241: +#line 699 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} + break; + + case 242: +#line 703 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} + break; + + case 243: +#line 704 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} + break; + + case 244: +#line 709 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); + PGLockingClause *n = makeNode(PGLockingClause); + n->lockedRels = (yyvsp[(2) - (3)].list); + n->strength = (yyvsp[(1) - (3)].lockstrength); + n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy); + (yyval.node) = (PGNode *) n; ;} break; - case 264: -#line 237 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} + case 245: +#line 719 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = LCS_FORUPDATE; ;} break; - case 265: -#line 243 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;} + case 246: +#line 720 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;} break; - case 266: -#line 245 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;} + case 247: +#line 721 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = PG_LCS_FORSHARE; ;} break; - case 267: -#line 247 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;} + case 248: +#line 722 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;} break; - case 268: -#line 249 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;} + case 249: +#line 726 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 269: -#line 251 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;} + case 250: +#line 727 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - case 270: -#line 256 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} + case 251: +#line 732 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockwaitpolicy) = LockWaitError; ;} break; - case 271: -#line 257 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} + case 252: +#line 733 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;} break; - case 272: -#line 261 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = ONCOMMIT_DROP; ;} + case 253: +#line 734 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;} break; - case 273: -#line 262 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;} + case 254: +#line 744 "third_party/libpg_query/grammar/statements/select.y" + { + PGSelectStmt *n = makeNode(PGSelectStmt); + n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); + (yyval.node) = (PGNode *) n; + ;} break; - case 274: -#line 263 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;} + case 255: +#line 750 "third_party/libpg_query/grammar/statements/select.y" + { + PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node); + n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); + (yyval.node) = (PGNode *) n; + ;} break; - case 275: -#line 264 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;} + case 256: +#line 767 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 276: -#line 269 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + case 257: +#line 768 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - case 277: -#line 273 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.boolean) = true; ;} + case 258: +#line 772 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 278: -#line 274 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.boolean) = false; ;} + case 259: +#line 773 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 279: -#line 280 "third_party/libpg_query/grammar/statements/create.y" + case 260: +#line 780 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node)); - n->conname = (yyvsp[(2) - (3)].str); - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) n; + (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias); + (yyvsp[(1) - (3)].range)->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) (yyvsp[(1) - (3)].range); ;} break; - case 280: -#line 286 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + case 261: +#line 786 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node); + n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list)); + n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (3)].list)); + n->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) n; + ;} break; - case 281: -#line 291 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;} + case 262: +#line 794 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node); + n->lateral = true; + n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list)); + n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list)); + (yyval.node) = (PGNode *) n; + ;} break; - case 282: -#line 292 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;} + case 263: +#line 802 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = false; + n->subquery = (yyvsp[(1) - (3)].node); + n->alias = (yyvsp[(2) - (3)].alias); + n->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) n; + ;} break; - case 283: -#line 293 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;} + case 264: +#line 811 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = true; + n->subquery = (yyvsp[(2) - (3)].node); + n->alias = (yyvsp[(3) - (3)].alias); + n->sample = NULL; + (yyval.node) = (PGNode *) n; + ;} break; - case 284: -#line 294 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;} + case 265: +#line 820 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr); + ;} break; - case 285: -#line 295 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;} + case 266: +#line 824 "third_party/libpg_query/grammar/statements/select.y" + { + (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); + (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr); + ;} break; - case 286: -#line 296 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;} + case 267: +#line 850 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); + ;} break; - case 287: -#line 297 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;} + case 268: +#line 854 "third_party/libpg_query/grammar/statements/select.y" + { + /* CROSS JOIN is same as unqualified inner join */ + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = PG_JOIN_INNER; + n->isNatural = false; + n->larg = (yyvsp[(1) - (4)].node); + n->rarg = (yyvsp[(4) - (4)].node); + n->usingClause = NIL; + n->quals = NULL; + n->location = (yylsp[(2) - (4)]); + (yyval.jexpr) = n; + ;} break; - case 288: -#line 298 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;} + case 269: +#line 867 "third_party/libpg_query/grammar/statements/select.y" + { + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = (yyvsp[(2) - (5)].jtype); + n->isNatural = false; + n->larg = (yyvsp[(1) - (5)].node); + n->rarg = (yyvsp[(4) - (5)].node); + if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList)) + n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */ + else + n->quals = (yyvsp[(5) - (5)].node); /* ON clause */ + n->location = (yylsp[(2) - (5)]); + (yyval.jexpr) = n; + ;} break; - case 289: -#line 304 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} + case 270: +#line 881 "third_party/libpg_query/grammar/statements/select.y" + { + /* letting join_type reduce to empty doesn't work */ + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = PG_JOIN_INNER; + n->isNatural = false; + n->larg = (yyvsp[(1) - (4)].node); + n->rarg = (yyvsp[(3) - (4)].node); + if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), PGList)) + n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */ + else + n->quals = (yyvsp[(4) - (4)].node); /* ON clause */ + n->location = (yylsp[(2) - (4)]); + (yyval.jexpr) = n; + ;} break; - case 290: -#line 305 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} + case 271: +#line 896 "third_party/libpg_query/grammar/statements/select.y" + { + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = (yyvsp[(3) - (5)].jtype); + n->isNatural = true; + n->larg = (yyvsp[(1) - (5)].node); + n->rarg = (yyvsp[(5) - (5)].node); + n->usingClause = NIL; /* figure out which columns later... */ + n->quals = NULL; /* fill later */ + n->location = (yylsp[(2) - (5)]); + (yyval.jexpr) = n; + ;} break; - case 291: -#line 309 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.str) = (yyvsp[(3) - (3)].str); ;} + case 272: +#line 908 "third_party/libpg_query/grammar/statements/select.y" + { + /* letting join_type reduce to empty doesn't work */ + PGJoinExpr *n = makeNode(PGJoinExpr); + n->jointype = PG_JOIN_INNER; + n->isNatural = true; + n->larg = (yyvsp[(1) - (4)].node); + n->rarg = (yyvsp[(4) - (4)].node); + n->usingClause = NIL; /* figure out which columns later... */ + n->quals = NULL; /* fill later */ + n->location = (yylsp[(2) - (4)]); + (yyval.jexpr) = n; + ;} break; - case 292: -#line 315 "third_party/libpg_query/grammar/statements/create.y" + case 273: +#line 924 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_DEFERRABLE; - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); + (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); ;} break; - case 293: -#line 322 "third_party/libpg_query/grammar/statements/create.y" + case 274: +#line 930 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); ;} break; - case 294: -#line 329 "third_party/libpg_query/grammar/statements/create.y" + case 275: +#line 935 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_DEFERRED; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); + (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); ;} break; - case 295: -#line 336 "third_party/libpg_query/grammar/statements/create.y" + case 276: +#line 941 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_ATTR_IMMEDIATE; - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); ;} break; - case 296: -#line 347 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} + case 277: +#line 947 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} break; - case 297: -#line 348 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;} + case 278: +#line 948 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.alias) = NULL; ;} break; - case 298: -#line 349 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;} + case 279: +#line 957 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); + ;} break; - case 299: -#line 350 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} + case 280: +#line 961 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); + ;} break; - case 300: -#line 354 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + case 281: +#line 965 "third_party/libpg_query/grammar/statements/select.y" + { + PGAlias *a = makeNode(PGAlias); + a->aliasname = (yyvsp[(2) - (5)].str); + (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); + ;} break; - case 301: -#line 359 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} + case 282: +#line 971 "third_party/libpg_query/grammar/statements/select.y" + { + PGAlias *a = makeNode(PGAlias); + a->aliasname = (yyvsp[(1) - (4)].str); + (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); + ;} break; - case 302: -#line 360 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} + case 283: +#line 977 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2(NULL, NIL); + ;} break; - case 303: -#line 361 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = 0; ;} + case 284: +#line 982 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_FULL; ;} break; - case 304: -#line 366 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + case 285: +#line 983 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_LEFT; ;} break; - case 305: -#line 371 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} + case 286: +#line 984 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_RIGHT; ;} break; - case 306: -#line 372 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_DEFERRABLE; ;} + case 287: +#line 985 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.jtype) = PG_JOIN_INNER; ;} break; - case 307: -#line 373 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} + case 288: +#line 989 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 308: -#line 374 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} + case 289: +#line 990 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 309: -#line 375 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_NOT_VALID; ;} + case 290: +#line 1002 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;} break; - case 310: -#line 376 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = CAS_NO_INHERIT; ;} + case 291: +#line 1003 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 311: -#line 382 "third_party/libpg_query/grammar/statements/create.y" + case 292: +#line 1009 "third_party/libpg_query/grammar/statements/select.y" { - PGColumnDef *n = makeNode(PGColumnDef); - n->colname = (yyvsp[(1) - (4)].str); - n->typeName = (yyvsp[(2) - (4)].typnam); - n->inhcount = 0; - n->is_local = true; - n->is_not_null = false; - n->is_from_type = false; - n->storage = 0; - n->raw_default = NULL; - n->cooked_default = NULL; - n->collOid = InvalidOid; - n->fdwoptions = (yyvsp[(3) - (4)].list); - SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause, - yyscanner); - n->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)n; + /* inheritance query, implicitly */ + (yyval.range) = (yyvsp[(1) - (1)].range); + (yyval.range)->inh = true; + (yyval.range)->alias = NULL; ;} break; - case 312: -#line 405 "third_party/libpg_query/grammar/statements/create.y" + case 293: +#line 1016 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); + /* inheritance query, explicitly */ + (yyval.range) = (yyvsp[(1) - (2)].range); + (yyval.range)->inh = true; + (yyval.range)->alias = NULL; ;} break; - case 313: -#line 409 "third_party/libpg_query/grammar/statements/create.y" + case 294: +#line 1023 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); + /* no inheritance */ + (yyval.range) = (yyvsp[(2) - (2)].range); + (yyval.range)->inh = false; + (yyval.range)->alias = NULL; ;} break; - case 314: -#line 415 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} - break; - - case 315: -#line 416 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} - break; - - case 316: -#line 420 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} - break; - - case 317: -#line 424 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} - break; - - case 318: -#line 425 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} - break; - - case 319: -#line 426 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} - break; - - case 320: -#line 431 "third_party/libpg_query/grammar/statements/create.y" + case 295: +#line 1030 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); + /* no inheritance, SQL99-style syntax */ + (yyval.range) = (yyvsp[(3) - (4)].range); + (yyval.range)->inh = false; + (yyval.range)->alias = NULL; ;} break; - case 321: -#line 435 "third_party/libpg_query/grammar/statements/create.y" + case 296: +#line 1062 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); + PGRangeFunction *n = makeNode(PGRangeFunction); + n->lateral = false; + n->ordinality = (yyvsp[(2) - (2)].boolean); + n->is_rowsfrom = false; + n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL)); + n->sample = NULL; + /* alias and coldeflist are set by table_ref production */ + (yyval.node) = (PGNode *) n; ;} break; - case 322: -#line 442 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} - break; - - case 323: -#line 443 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} + case 297: +#line 1073 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeFunction *n = makeNode(PGRangeFunction); + n->lateral = false; + n->ordinality = (yyvsp[(6) - (6)].boolean); + n->is_rowsfrom = true; + n->functions = (yyvsp[(4) - (6)].list); + n->sample = NULL; + /* alias and coldeflist are set by table_ref production */ + (yyval.node) = (PGNode *) n; + ;} break; - case 324: -#line 448 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + case 298: +#line 1086 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} break; - case 325: -#line 449 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} + case 299: +#line 1090 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; - case 326: -#line 454 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); - ;} + case 300: +#line 1091 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; - case 327: -#line 461 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + case 301: +#line 1094 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 328: -#line 462 "third_party/libpg_query/grammar/statements/create.y" + case 302: +#line 1095 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 329: -#line 467 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} + case 303: +#line 1098 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = true; ;} break; - case 330: -#line 468 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = NIL; ;} + case 304: +#line 1099 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; ;} break; - case 331: -#line 472 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} + case 305: +#line 1104 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 332: -#line 478 "third_party/libpg_query/grammar/statements/create.y" + case 306: +#line 1105 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} + break; + + case 307: +#line 1111 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); + (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 333: -#line 482 "third_party/libpg_query/grammar/statements/create.y" + case 308: +#line 1115 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 334: -#line 486 "third_party/libpg_query/grammar/statements/create.y" + case 309: +#line 1121 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (PGNode *) (yyvsp[(5) - (5)].node), - PG_DEFELEM_UNSPEC, (yylsp[(1) - (5)])); + PGColumnDef *n = makeNode(PGColumnDef); + n->colname = (yyvsp[(1) - (3)].str); + n->typeName = (yyvsp[(2) - (3)].typnam); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collClause = (PGCollateClause *) (yyvsp[(3) - (3)].node); + n->collOid = InvalidOid; + n->constraints = NIL; + n->location = (yylsp[(1) - (3)]); + (yyval.node) = (PGNode *)n; ;} break; - case 335: -#line 491 "third_party/libpg_query/grammar/statements/create.y" + case 310: +#line 1142 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[(1) - (3)])); + PGCollateClause *n = makeNode(PGCollateClause); + n->arg = NULL; + n->collname = (yyvsp[(2) - (2)].list); + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *) n; ;} break; - case 336: -#line 498 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} + case 311: +#line 1149 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; - case 337: -#line 499 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} + case 312: +#line 1162 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam))); + ;} break; - case 338: -#line 503 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + case 313: +#line 1165 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam))); + ;} break; - case 339: -#line 505 "third_party/libpg_query/grammar/statements/create.y" + case 316: +#line 1172 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list))); - (yyval.typnam)->pct_type = true; - (yyval.typnam)->location = (yylsp[(1) - (4)]); + (yyval.typnam) = (yyvsp[(1) - (2)].typnam); + (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); ;} break; - case 340: -#line 511 "third_party/libpg_query/grammar/statements/create.y" + case 317: +#line 1177 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list))); - (yyval.typnam)->pct_type = true; + (yyval.typnam) = (yyvsp[(2) - (3)].typnam); + (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); (yyval.typnam)->setof = true; - (yyval.typnam)->location = (yylsp[(2) - (5)]); ;} break; - case 341: -#line 522 "third_party/libpg_query/grammar/statements/create.y" + case 318: +#line 1184 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_CHECK; - n->location = (yylsp[(1) - (5)]); - n->raw_expr = (yyvsp[(3) - (5)].node); - n->cooked_expr = NULL; - processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", - NULL, NULL, &n->skip_validation, - &n->is_no_inherit, yyscanner); - n->initially_valid = !n->skip_validation; - (yyval.node) = (PGNode *)n; + (yyval.typnam) = (yyvsp[(1) - (5)].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); ;} break; - case 342: -#line 536 "third_party/libpg_query/grammar/statements/create.y" + case 319: +#line 1189 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_UNIQUE; - n->location = (yylsp[(1) - (6)]); - n->keys = (yyvsp[(3) - (6)].list); - n->options = (yyvsp[(5) - (6)].list); - n->indexname = NULL; - processCASbits((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), "UNIQUE", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; + (yyval.typnam) = (yyvsp[(2) - (6)].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); + (yyval.typnam)->setof = true; ;} break; - case 343: -#line 549 "third_party/libpg_query/grammar/statements/create.y" + case 320: +#line 1195 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_UNIQUE; - n->location = (yylsp[(1) - (3)]); - n->keys = NIL; - n->options = NIL; - n->indexname = (yyvsp[(2) - (3)].str); - n->indexspace = NULL; - processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; + (yyval.typnam) = (yyvsp[(1) - (2)].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ;} break; - case 344: -#line 564 "third_party/libpg_query/grammar/statements/create.y" + case 321: +#line 1200 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_PRIMARY; - n->location = (yylsp[(1) - (7)]); - n->keys = (yyvsp[(4) - (7)].list); - n->options = (yyvsp[(6) - (7)].list); - n->indexname = NULL; - processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "PRIMARY KEY", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; + (yyval.typnam) = (yyvsp[(2) - (3)].typnam); + (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); + (yyval.typnam)->setof = true; ;} break; - case 345: -#line 577 "third_party/libpg_query/grammar/statements/create.y" + case 322: +#line 1205 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_PRIMARY; - n->location = (yylsp[(1) - (4)]); - n->keys = NIL; - n->options = NIL; - n->indexname = (yyvsp[(3) - (4)].str); - n->indexspace = NULL; - processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY", - &n->deferrable, &n->initdeferred, NULL, - NULL, yyscanner); - (yyval.node) = (PGNode *)n; - ;} + (yyval.typnam) = SystemTypeName("struct"); + (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); + (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list); + (yyval.typnam)->location = (yylsp[(1) - (5)]); + ;} break; - case 346: -#line 592 "third_party/libpg_query/grammar/statements/create.y" + case 323: +#line 1211 "third_party/libpg_query/grammar/statements/select.y" { - PGConstraint *n = makeNode(PGConstraint); - n->contype = PG_CONSTR_FOREIGN; - n->location = (yylsp[(1) - (11)]); - n->pktable = (yyvsp[(7) - (11)].range); - n->fk_attrs = (yyvsp[(4) - (11)].list); - n->pk_attrs = (yyvsp[(8) - (11)].list); - n->fk_matchtype = (yyvsp[(9) - (11)].ival); - n->fk_upd_action = (char) ((yyvsp[(10) - (11)].ival) >> 8); - n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF); - processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY", - &n->deferrable, &n->initdeferred, - &n->skip_validation, NULL, - yyscanner); - n->initially_valid = !n->skip_validation; - (yyval.node) = (PGNode *)n; - ;} + (yyval.typnam) = SystemTypeName("map"); + (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); + (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list); + (yyval.typnam)->location = (yylsp[(1) - (5)]); + ;} break; - case 347: -#line 614 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} + case 324: +#line 1221 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} break; - case 348: -#line 618 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} + case 325: +#line 1223 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} break; - case 349: -#line 625 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.ival) = PG_FKCONSTR_MATCH_FULL; - ;} + case 326: +#line 1225 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - case 350: -#line 629 "third_party/libpg_query/grammar/statements/create.y" - { - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("MATCH PARTIAL not yet implemented"), - parser_errposition((yylsp[(1) - (2)])))); - (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL; - ;} + case 327: +#line 1229 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 351: -#line 637 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; - ;} + case 328: +#line 1230 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 352: -#line 641 "third_party/libpg_query/grammar/statements/create.y" - { - (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; - ;} + case 329: +#line 1231 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 353: -#line 649 "third_party/libpg_query/grammar/statements/create.y" + case 330: +#line 1232 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + break; + + case 331: +#line 1233 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + break; + + case 332: +#line 1235 "third_party/libpg_query/grammar/statements/select.y" { - PGTableLikeClause *n = makeNode(PGTableLikeClause); - n->relation = (yyvsp[(2) - (3)].range); - n->options = (yyvsp[(3) - (3)].ival); - (yyval.node) = (PGNode *)n; + (yyval.typnam) = (yyvsp[(1) - (2)].typnam); + (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); + ;} + break; + + case 333: +#line 1240 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[(1) - (4)].typnam); + (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); ;} break; - case 354: -#line 658 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} + case 334: +#line 1259 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 355: -#line 659 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} + case 335: +#line 1260 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 356: -#line 660 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} + case 336: +#line 1261 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 357: -#line 661 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} + case 337: +#line 1262 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 358: -#line 663 "third_party/libpg_query/grammar/statements/create.y" + case 338: +#line 1274 "third_party/libpg_query/grammar/statements/select.y" { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (2)])))); - (yyval.ival) = PG_RELPERSISTENCE_TEMP; + (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); + (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); + (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; - case 359: -#line 670 "third_party/libpg_query/grammar/statements/create.y" + case 339: +#line 1287 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + break; + + case 340: +#line 1288 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} + break; + + case 341: +#line 1295 "third_party/libpg_query/grammar/statements/select.y" { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (2)])))); - (yyval.ival) = PG_RELPERSISTENCE_TEMP; + (yyval.typnam) = SystemTypeName("int4"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 360: -#line 676 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;} + case 342: +#line 1300 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int4"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); + ;} break; - case 361: -#line 677 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} + case 343: +#line 1305 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int2"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); + ;} break; - case 362: -#line 682 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;} + case 344: +#line 1310 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("int8"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); + ;} break; - case 363: -#line 683 "third_party/libpg_query/grammar/statements/create.y" - { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;} + case 345: +#line 1315 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("float4"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); + ;} break; - case 364: -#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y" + case 346: +#line 1320 "third_party/libpg_query/grammar/statements/select.y" { - PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); - (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival); - n->sequence = (yyvsp[(4) - (5)].range); - n->options = (yyvsp[(5) - (5)].list); - n->ownerId = InvalidOid; - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; + (yyval.typnam) = (yyvsp[(2) - (2)].typnam); + (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; - case 365: -#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y" + case 347: +#line 1325 "third_party/libpg_query/grammar/statements/select.y" { - PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); - (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival); - n->sequence = (yyvsp[(7) - (8)].range); - n->options = (yyvsp[(8) - (8)].list); - n->ownerId = InvalidOid; - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; + (yyval.typnam) = SystemTypeName("float8"); + (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; - case 366: -#line 32 "third_party/libpg_query/grammar/statements/create_sequence.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + case 348: +#line 1330 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); + (yyval.typnam)->location = (yylsp[(1) - (2)]); + ;} break; - case 367: -#line 33 "third_party/libpg_query/grammar/statements/create_sequence.y" - { (yyval.list) = NIL; ;} + case 349: +#line 1336 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); + (yyval.typnam)->location = (yylsp[(1) - (2)]); + ;} break; - case 368: -#line 3 "third_party/libpg_query/grammar/statements/variable_show.y" + case 350: +#line 1342 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); - n->stmt = (yyvsp[(2) - (2)].node); - n->name = (char*) "select"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} + (yyval.typnam) = SystemTypeName("numeric"); + (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); + (yyval.typnam)->location = (yylsp[(1) - (2)]); + ;} break; - case 369: -#line 10 "third_party/libpg_query/grammar/statements/variable_show.y" + case 351: +#line 1348 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); - n->stmt = (yyvsp[(2) - (2)].node); - n->name = (char*) "select"; - n->is_summary = 1; - (yyval.node) = (PGNode *) n; - ;} + (yyval.typnam) = SystemTypeName("bool"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); + ;} break; - case 370: -#line 18 "third_party/libpg_query/grammar/statements/variable_show.y" + case 352: +#line 1355 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (yyvsp[(2) - (2)].str); - n->is_summary = 1; - (yyval.node) = (PGNode *) n; - ;} + /* + * Check FLOAT() precision limits assuming IEEE floating + * types - thomas 1997-09-18 + */ + if ((yyvsp[(2) - (3)].ival) < 1) + ereport(ERROR, + (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("precision for type float must be at least 1 bit"), + parser_errposition((yylsp[(2) - (3)])))); + else if ((yyvsp[(2) - (3)].ival) <= 24) + (yyval.typnam) = SystemTypeName("float4"); + else if ((yyvsp[(2) - (3)].ival) <= 53) + (yyval.typnam) = SystemTypeName("float8"); + else + ereport(ERROR, + (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("precision for type float must be less than 54 bits"), + parser_errposition((yylsp[(2) - (3)])))); + ;} break; - case 371: -#line 25 "third_party/libpg_query/grammar/statements/variable_show.y" + case 353: +#line 1376 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (yyvsp[(2) - (2)].str); - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} + (yyval.typnam) = SystemTypeName("float4"); + ;} break; - case 372: -#line 32 "third_party/libpg_query/grammar/statements/variable_show.y" + case 354: +#line 1386 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "timezone"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + ;} break; - case 373: -#line 39 "third_party/libpg_query/grammar/statements/variable_show.y" + case 355: +#line 1390 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "transaction_isolation"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + ;} break; - case 374: -#line 46 "third_party/libpg_query/grammar/statements/variable_show.y" + case 356: +#line 1398 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "all"; - n->is_summary = 0; - (yyval.node) = (PGNode *) n; - ;} + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + ;} break; - case 377: -#line 57 "third_party/libpg_query/grammar/statements/variable_show.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + case 357: +#line 1402 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + (yyval.typnam)->typmods = NIL; + ;} break; - case 378: -#line 59 "third_party/libpg_query/grammar/statements/variable_show.y" - { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} + case 358: +#line 1410 "third_party/libpg_query/grammar/statements/select.y" + { + const char *typname; + + typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit"; + (yyval.typnam) = SystemTypeName(typname); + (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list); + (yyval.typnam)->location = (yylsp[(1) - (5)]); + ;} break; - case 379: -#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y" - { (yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt); ;} + case 359: +#line 1422 "third_party/libpg_query/grammar/statements/select.y" + { + /* bit defaults to bit(1), varbit to no limit */ + if ((yyvsp[(2) - (2)].boolean)) + { + (yyval.typnam) = SystemTypeName("varbit"); + } + else + { + (yyval.typnam) = SystemTypeName("bit"); + (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); + } + (yyval.typnam)->location = (yylsp[(1) - (2)]); + ;} break; - case 380: -#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y" + case 360: +#line 1443 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET; - n->name = (yyvsp[(1) - (1)].str); - (yyval.vsetstmt) = n; + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 381: -#line 15 "third_party/libpg_query/grammar/statements/variable_reset.y" + case 361: +#line 1447 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET_ALL; - (yyval.vsetstmt) = n; + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 382: -#line 24 "third_party/libpg_query/grammar/statements/variable_reset.y" - { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} - break; - - case 383: -#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y" + case 362: +#line 1453 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET; - n->name = (char*) "timezone"; - (yyval.vsetstmt) = n; + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 384: -#line 33 "third_party/libpg_query/grammar/statements/variable_reset.y" + case 363: +#line 1457 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_RESET; - n->name = (char*) "transaction_isolation"; - (yyval.vsetstmt) = n; + /* Length was not specified so allow to be unrestricted. + * This handles problems with fixed-length (bpchar) strings + * which in column definitions must default to a length + * of one, but should not be constrained if the length + * was not specified. + */ + (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + (yyval.typnam)->typmods = NIL; ;} break; - case 385: -#line 11 "third_party/libpg_query/grammar/statements/index.y" + case 364: +#line 1470 "third_party/libpg_query/grammar/statements/select.y" { - PGIndexStmt *n = makeNode(PGIndexStmt); - n->unique = (yyvsp[(2) - (13)].boolean); - n->concurrent = (yyvsp[(4) - (13)].boolean); - n->idxname = (yyvsp[(5) - (13)].str); - n->relation = (yyvsp[(7) - (13)].range); - n->accessMethod = (yyvsp[(8) - (13)].str); - n->indexParams = (yyvsp[(10) - (13)].list); - n->options = (yyvsp[(12) - (13)].list); - n->whereClause = (yyvsp[(13) - (13)].node); - n->excludeOpNames = NIL; - n->idxcomment = NULL; - n->indexOid = InvalidOid; - n->oldNode = InvalidOid; - n->primary = false; - n->isconstraint = false; - n->deferrable = false; - n->initdeferred = false; - n->transformed = false; - n->onconflict = PG_ERROR_ON_CONFLICT; - (yyval.node) = (PGNode *)n; + (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr)); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); + (yyval.typnam)->location = (yylsp[(1) - (4)]); ;} break; - case 386: -#line 36 "third_party/libpg_query/grammar/statements/index.y" + case 365: +#line 1478 "third_party/libpg_query/grammar/statements/select.y" { - PGIndexStmt *n = makeNode(PGIndexStmt); - n->unique = (yyvsp[(2) - (16)].boolean); - n->concurrent = (yyvsp[(4) - (16)].boolean); - n->idxname = (yyvsp[(8) - (16)].str); - n->relation = (yyvsp[(10) - (16)].range); - n->accessMethod = (yyvsp[(11) - (16)].str); - n->indexParams = (yyvsp[(13) - (16)].list); - n->options = (yyvsp[(15) - (16)].list); - n->whereClause = (yyvsp[(16) - (16)].node); - n->excludeOpNames = NIL; - n->idxcomment = NULL; - n->indexOid = InvalidOid; - n->oldNode = InvalidOid; - n->primary = false; - n->isconstraint = false; - n->deferrable = false; - n->initdeferred = false; - n->transformed = false; - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; + (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr)); + /* char defaults to char(1), varchar to no limit */ + if (strcmp((yyvsp[(1) - (1)].conststr), "bpchar") == 0) + (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); + (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 387: -#line 62 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + case 366: +#line 1488 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; - case 388: -#line 66 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (yyvsp[(2) - (2)].str); ;} + case 367: +#line 1490 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; - case 389: -#line 67 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;} + case 368: +#line 1492 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "varchar"; ;} break; - case 390: -#line 72 "third_party/libpg_query/grammar/statements/index.y" + case 369: +#line 1494 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} + break; + + case 370: +#line 1496 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} + break; + + case 371: +#line 1498 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} + break; + + case 372: +#line 1502 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 391: -#line 73 "third_party/libpg_query/grammar/statements/index.y" + case 373: +#line 1503 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 392: -#line 78 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + case 374: +#line 1511 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(5) - (5)].boolean)) + (yyval.typnam) = SystemTypeName("timestamptz"); + else + (yyval.typnam) = SystemTypeName("timestamp"); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); + (yyval.typnam)->location = (yylsp[(1) - (5)]); + ;} break; - case 393: -#line 79 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.str) = NULL; ;} + case 375: +#line 1520 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(2) - (2)].boolean)) + (yyval.typnam) = SystemTypeName("timestamptz"); + else + (yyval.typnam) = SystemTypeName("timestamp"); + (yyval.typnam)->location = (yylsp[(1) - (2)]); + ;} break; - case 394: -#line 83 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} + case 376: +#line 1528 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(5) - (5)].boolean)) + (yyval.typnam) = SystemTypeName("timetz"); + else + (yyval.typnam) = SystemTypeName("time"); + (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); + (yyval.typnam)->location = (yylsp[(1) - (5)]); + ;} break; - case 395: -#line 84 "third_party/libpg_query/grammar/statements/index.y" - { (yyval.list) = NIL; ;} + case 377: +#line 1537 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(2) - (2)].boolean)) + (yyval.typnam) = SystemTypeName("timetz"); + else + (yyval.typnam) = SystemTypeName("time"); + (yyval.typnam)->location = (yylsp[(1) - (2)]); + ;} break; - case 396: -#line 89 "third_party/libpg_query/grammar/statements/index.y" + case 378: +#line 1548 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.typnam) = SystemTypeName("interval"); + (yyval.typnam)->location = (yylsp[(1) - (1)]); + ;} + break; + + case 379: +#line 1555 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 397: -#line 90 "third_party/libpg_query/grammar/statements/index.y" + case 380: +#line 1556 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.boolean) = false; ;} + break; + + case 381: +#line 1557 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; case 398: -#line 12 "third_party/libpg_query/grammar/statements/create_as.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - ctas->query = (yyvsp[(6) - (7)].node); - ctas->into = (yyvsp[(4) - (7)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_ERROR_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival); - (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 1586 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} break; case 399: -#line 25 "third_party/libpg_query/grammar/statements/create_as.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - ctas->query = (yyvsp[(9) - (10)].node); - ctas->into = (yyvsp[(7) - (10)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_IGNORE_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival); - (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 1588 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} break; case 400: -#line 41 "third_party/libpg_query/grammar/statements/create_as.y" - { (yyval.boolean) = true; ;} +#line 1590 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} break; case 401: -#line 42 "third_party/libpg_query/grammar/statements/create_as.y" - { (yyval.boolean) = false; ;} +#line 1592 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} break; case 402: -#line 43 "third_party/libpg_query/grammar/statements/create_as.y" - { (yyval.boolean) = true; ;} +#line 1594 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} break; case 403: -#line 49 "third_party/libpg_query/grammar/statements/create_as.y" - { - (yyval.into) = makeNode(PGIntoClause); - (yyval.into)->rel = (yyvsp[(1) - (4)].range); - (yyval.into)->colNames = (yyvsp[(2) - (4)].list); - (yyval.into)->options = (yyvsp[(3) - (4)].list); - (yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit); - (yyval.into)->viewQuery = NULL; - (yyval.into)->skipData = false; /* might get changed later */ - ;} +#line 1596 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} break; case 404: -#line 8 "third_party/libpg_query/grammar/statements/deallocate.y" - { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = (yyvsp[(2) - (2)].str); - (yyval.node) = (PGNode *) n; - ;} +#line 1598 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;} break; case 405: -#line 14 "third_party/libpg_query/grammar/statements/deallocate.y" - { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = (yyvsp[(3) - (3)].str); - (yyval.node) = (PGNode *) n; - ;} +#line 1600 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;} break; case 406: -#line 20 "third_party/libpg_query/grammar/statements/deallocate.y" +#line 1602 "third_party/libpg_query/grammar/statements/select.y" { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = NULL; - (yyval.node) = (PGNode *) n; - ;} + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | + INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); + ;} break; case 407: -#line 26 "third_party/libpg_query/grammar/statements/deallocate.y" +#line 1607 "third_party/libpg_query/grammar/statements/select.y" { - PGDeallocateStmt *n = makeNode(PGDeallocateStmt); - n->name = NULL; - (yyval.node) = (PGNode *) n; - ;} + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); + ;} break; case 408: -#line 3 "third_party/libpg_query/grammar/statements/transaction.y" +#line 1612 "third_party/libpg_query/grammar/statements/select.y" { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_ROLLBACK; - n->options = NIL; - (yyval.node) = (PGNode *)n; + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 409: -#line 10 "third_party/libpg_query/grammar/statements/transaction.y" +#line 1618 "third_party/libpg_query/grammar/statements/select.y" { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_BEGIN; - (yyval.node) = (PGNode *)n; + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | + INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); ;} break; case 410: -#line 16 "third_party/libpg_query/grammar/statements/transaction.y" +#line 1625 "third_party/libpg_query/grammar/statements/select.y" { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_START; - (yyval.node) = (PGNode *)n; + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 411: -#line 22 "third_party/libpg_query/grammar/statements/transaction.y" +#line 1630 "third_party/libpg_query/grammar/statements/select.y" { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_COMMIT; - n->options = NIL; - (yyval.node) = (PGNode *)n; + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | + INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); ;} break; case 412: -#line 29 "third_party/libpg_query/grammar/statements/transaction.y" +#line 1636 "third_party/libpg_query/grammar/statements/select.y" { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_COMMIT; - n->options = NIL; - (yyval.node) = (PGNode *)n; + (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) | + INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); ;} break; case 413: -#line 36 "third_party/libpg_query/grammar/statements/transaction.y" - { - PGTransactionStmt *n = makeNode(PGTransactionStmt); - n->kind = PG_TRANS_STMT_ROLLBACK; - n->options = NIL; - (yyval.node) = (PGNode *)n; - ;} +#line 1641 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 414: -#line 45 "third_party/libpg_query/grammar/statements/transaction.y" - {;} +#line 1672 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 415: -#line 46 "third_party/libpg_query/grammar/statements/transaction.y" - {;} +#line 1675 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} break; case 416: -#line 47 "third_party/libpg_query/grammar/statements/transaction.y" - {;} +#line 1677 "third_party/libpg_query/grammar/statements/select.y" + { + PGCollateClause *n = makeNode(PGCollateClause); + n->arg = (yyvsp[(1) - (3)].node); + n->collname = (yyvsp[(3) - (3)].list); + n->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *) n; + ;} break; case 417: -#line 10 "third_party/libpg_query/grammar/statements/view.y" +#line 1685 "third_party/libpg_query/grammar/statements/select.y" { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(4) - (9)].range); - n->view->relpersistence = (yyvsp[(2) - (9)].ival); - n->aliases = (yyvsp[(5) - (9)].list); - n->query = (yyvsp[(8) - (9)].node); - n->onconflict = PG_ERROR_ON_CONFLICT; - n->options = (yyvsp[(6) - (9)].list); - n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption); - (yyval.node) = (PGNode *) n; + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"), + list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), + (yylsp[(2) - (5)])); ;} break; case 418: -#line 23 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(6) - (11)].range); - n->view->relpersistence = (yyvsp[(4) - (11)].ival); - n->aliases = (yyvsp[(7) - (11)].list); - n->query = (yyvsp[(10) - (11)].node); - n->onconflict = PG_REPLACE_ON_CONFLICT; - n->options = (yyvsp[(8) - (11)].list); - n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption); - (yyval.node) = (PGNode *) n; - ;} +#line 1700 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 419: -#line 36 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(5) - (12)].range); - n->view->relpersistence = (yyvsp[(2) - (12)].ival); - n->aliases = (yyvsp[(7) - (12)].list); - n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node)); - n->onconflict = PG_ERROR_ON_CONFLICT; - n->options = (yyvsp[(9) - (12)].list); - n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption); - if (n->withCheckOption != PG_NO_CHECK_OPTION) - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("WITH CHECK OPTION not supported on recursive views"), - parser_errposition((yylsp[(12) - (12)])))); - (yyval.node) = (PGNode *) n; - ;} +#line 1702 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 420: -#line 54 "third_party/libpg_query/grammar/statements/view.y" - { - PGViewStmt *n = makeNode(PGViewStmt); - n->view = (yyvsp[(7) - (14)].range); - n->view->relpersistence = (yyvsp[(4) - (14)].ival); - n->aliases = (yyvsp[(9) - (14)].list); - n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node)); - n->onconflict = PG_REPLACE_ON_CONFLICT; - n->options = (yyvsp[(11) - (14)].list); - n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption); - if (n->withCheckOption != PG_NO_CHECK_OPTION) - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("WITH CHECK OPTION not supported on recursive views"), - parser_errposition((yylsp[(14) - (14)])))); - (yyval.node) = (PGNode *) n; - ;} +#line 1704 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 421: -#line 74 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} +#line 1706 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 422: -#line 75 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} +#line 1708 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 423: -#line 76 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;} +#line 1710 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 424: -#line 77 "third_party/libpg_query/grammar/statements/view.y" - { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;} +#line 1712 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 425: -#line 9 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM; - if ((yyvsp[(2) - (4)].boolean)) - n->options |= PG_VACOPT_FULL; - if ((yyvsp[(3) - (4)].boolean)) - n->options |= PG_VACOPT_FREEZE; - if ((yyvsp[(4) - (4)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = NULL; - n->va_cols = NIL; - (yyval.node) = (PGNode *)n; - ;} +#line 1714 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 426: -#line 23 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM; - if ((yyvsp[(2) - (5)].boolean)) - n->options |= PG_VACOPT_FULL; - if ((yyvsp[(3) - (5)].boolean)) - n->options |= PG_VACOPT_FREEZE; - if ((yyvsp[(4) - (5)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - n->relation = (yyvsp[(5) - (5)].range); - n->va_cols = NIL; - (yyval.node) = (PGNode *)n; - ;} +#line 1716 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 427: -#line 37 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node); - n->options |= PG_VACOPT_VACUUM; - if ((yyvsp[(2) - (5)].boolean)) - n->options |= PG_VACOPT_FULL; - if ((yyvsp[(3) - (5)].boolean)) - n->options |= PG_VACOPT_FREEZE; - if ((yyvsp[(4) - (5)].boolean)) - n->options |= PG_VACOPT_VERBOSE; - (yyval.node) = (PGNode *)n; - ;} +#line 1718 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 428: -#line 49 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival); - n->relation = NULL; - n->va_cols = NIL; - (yyval.node) = (PGNode *) n; - ;} +#line 1720 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 429: -#line 57 "third_party/libpg_query/grammar/statements/vacuum.y" - { - PGVacuumStmt *n = makeNode(PGVacuumStmt); - n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival); - n->relation = (yyvsp[(5) - (6)].range); - n->va_cols = (yyvsp[(6) - (6)].list); - if (n->va_cols != NIL) /* implies analyze */ - n->options |= PG_VACOPT_ANALYZE; - (yyval.node) = (PGNode *) n; - ;} +#line 1722 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 430: -#line 70 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_ANALYZE; ;} +#line 1724 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 431: -#line 71 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_VERBOSE; ;} +#line 1726 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 432: -#line 72 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_FREEZE; ;} +#line 1729 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 433: -#line 73 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = PG_VACOPT_FULL; ;} +#line 1731 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 434: -#line 75 "third_party/libpg_query/grammar/statements/vacuum.y" - { - if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0) - (yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING; - else - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)), - parser_errposition((yylsp[(1) - (1)])))); - ;} +#line 1733 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; case 435: -#line 87 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = true; ;} +#line 1736 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 436: -#line 88 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = false; ;} +#line 1738 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 437: -#line 93 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} +#line 1740 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 438: -#line 94 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} +#line 1742 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 439: -#line 98 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = true; ;} +#line 1745 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~", + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); + ;} break; case 440: -#line 99 "third_party/libpg_query/grammar/statements/vacuum.y" - { (yyval.boolean) = false; ;} +#line 1750 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~", + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); + ;} break; case 441: -#line 7 "third_party/libpg_query/grammar/statements/call.y" +#line 1755 "third_party/libpg_query/grammar/statements/select.y" { - PGCallStmt *n = makeNode(PGCallStmt); - n->func = (yyvsp[(2) - (2)].node); + PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), + (yylsp[(2) - (5)])); (yyval.node) = (PGNode *) n; ;} break; case 442: -#line 11 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1762 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); - n->scope = VAR_SET_SCOPE_DEFAULT; - (yyval.node) = (PGNode *) n; + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~", + (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 443: -#line 17 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1767 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); - n->scope = VAR_SET_SCOPE_LOCAL; + PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), + list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), + (yylsp[(2) - (6)])); (yyval.node) = (PGNode *) n; ;} break; case 444: -#line 23 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1774 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); - n->scope = VAR_SET_SCOPE_SESSION; - (yyval.node) = (PGNode *) n; + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 445: -#line 29 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1779 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); - n->scope = VAR_SET_SCOPE_GLOBAL; - (yyval.node) = (PGNode *) n; + PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), + list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), + (yylsp[(2) - (5)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", + (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)])); ;} break; case 446: -#line 38 "third_party/libpg_query/grammar/statements/variable_set.y" - {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} +#line 1787 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", + (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); + ;} break; case 447: -#line 40 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1792 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_CURRENT; - n->name = (yyvsp[(1) - (3)].str); - (yyval.vsetstmt) = n; + PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), + list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), + (yylsp[(2) - (6)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", + (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)])); ;} break; case 448: -#line 48 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1801 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (char*) "timezone"; - if ((yyvsp[(3) - (3)].node) != NULL) - n->args = list_make1((yyvsp[(3) - (3)].node)); - else - n->kind = VAR_SET_DEFAULT; - (yyval.vsetstmt) = n; + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)), + (yylsp[(2) - (4)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", + (yyvsp[(1) - (4)].node), (PGNode *) n, (yylsp[(2) - (4)])); ;} break; case 449: -#line 59 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1809 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (char*) "search_path"; - n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); - (yyval.vsetstmt) = n; + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), + (yylsp[(2) - (6)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", + (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)])); ;} break; case 450: -#line 71 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1817 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (yyvsp[(1) - (3)].str); - n->args = (yyvsp[(3) - (3)].list); - (yyval.vsetstmt) = n; + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)), + (yylsp[(2) - (5)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", + (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)])); ;} break; case 451: -#line 79 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1825 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_VALUE; - n->name = (yyvsp[(1) - (3)].str); - n->args = (yyvsp[(3) - (3)].list); - (yyval.vsetstmt) = n; + PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), + list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), + (yylsp[(2) - (7)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", + (yyvsp[(1) - (7)].node), (PGNode *) n, (yylsp[(2) - (7)])); ;} break; case 452: -#line 87 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1843 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_DEFAULT; - n->name = (yyvsp[(1) - (3)].str); - (yyval.vsetstmt) = n; + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); + n->nulltesttype = PG_IS_NULL; + n->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *)n; ;} break; case 453: -#line 94 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1851 "third_party/libpg_query/grammar/statements/select.y" { - PGVariableSetStmt *n = makeNode(PGVariableSetStmt); - n->kind = VAR_SET_DEFAULT; - n->name = (yyvsp[(1) - (3)].str); - (yyval.vsetstmt) = n; + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); + n->nulltesttype = PG_IS_NULL; + n->location = (yylsp[(2) - (2)]); + (yyval.node) = (PGNode *)n; ;} break; case 454: -#line 104 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} +#line 1859 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[(1) - (4)].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[(2) - (4)]); + (yyval.node) = (PGNode *)n; + ;} break; case 455: -#line 106 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} +#line 1867 "third_party/libpg_query/grammar/statements/select.y" + { + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *)n; + ;} break; case 456: -#line 112 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1875 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + PGNullTest *n = makeNode(PGNullTest); + n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); + n->nulltesttype = IS_NOT_NULL; + n->location = (yylsp[(2) - (2)]); + (yyval.node) = (PGNode *)n; ;} break; case 457: -#line 116 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1882 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} + PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)])); + (yyval.node) = (PGNode *) n; + ;} break; case 458: -#line 120 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1886 "third_party/libpg_query/grammar/statements/select.y" { - PGTypeName *t = (yyvsp[(1) - (3)].typnam); - if ((yyvsp[(3) - (3)].list) != NIL) - { - PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list)); - if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), - parser_errposition((yylsp[(3) - (3)])))); - } - t->typmods = (yyvsp[(3) - (3)].list); - (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); - ;} + PGFuncCall *n = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); + (yyval.node) = (PGNode *) n; + ;} break; case 459: -#line 135 "third_party/libpg_query/grammar/statements/variable_set.y" +#line 1890 "third_party/libpg_query/grammar/statements/select.y" { - PGTypeName *t = (yyvsp[(1) - (5)].typnam); - t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), - makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); - (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); - ;} + PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); + (yyval.node) = (PGNode *) n; + ;} break; case 460: -#line 141 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} +#line 1895 "third_party/libpg_query/grammar/statements/select.y" + { + PGLambdaFunction *n = makeNode(PGLambdaFunction); + n->parameters = (yyvsp[(1) - (3)].list); + n->function = (yyvsp[(3) - (3)].node); + n->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *) n; + ;} break; case 461: -#line 142 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = NULL; ;} +#line 1903 "third_party/libpg_query/grammar/statements/select.y" + { + PGLambdaFunction *n = makeNode(PGLambdaFunction); + n->parameters = list_make1((yyvsp[(1) - (3)].node)); + n->function = (yyvsp[(3) - (3)].node); + n->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *) n; + ;} break; case 462: -#line 143 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.node) = NULL; ;} +#line 1911 "third_party/libpg_query/grammar/statements/select.y" + { + if (list_length((yyvsp[(1) - (3)].list)) != 2) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("wrong number of parameters on left side of OVERLAPS expression"), + parser_errposition((yylsp[(1) - (3)])))); + if (list_length((yyvsp[(3) - (3)].list)) != 2) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("wrong number of parameters on right side of OVERLAPS expression"), + parser_errposition((yylsp[(3) - (3)])))); + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"), + list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)), + (yylsp[(2) - (3)])); + ;} break; case 463: -#line 147 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 1927 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); + b->booltesttype = PG_IS_TRUE; + b->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *)b; + ;} break; case 464: -#line 148 "third_party/libpg_query/grammar/statements/variable_set.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} - break; - - case 465: -#line 3 "third_party/libpg_query/grammar/statements/copy.y" +#line 1935 "third_party/libpg_query/grammar/statements/select.y" { - PGCopyStmt *n = makeNode(PGCopyStmt); - n->relation = (yyvsp[(3) - (11)].range); - n->query = NULL; - n->attlist = (yyvsp[(4) - (11)].list); - n->is_from = (yyvsp[(6) - (11)].boolean); - n->is_program = (yyvsp[(7) - (11)].boolean); - n->filename = (yyvsp[(8) - (11)].str); - - if (n->is_program && n->filename == NULL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("STDIN/STDOUT not allowed with PROGRAM"), - parser_errposition((yylsp[(8) - (11)])))); - - n->options = NIL; - /* Concatenate user-supplied flags */ - if ((yyvsp[(2) - (11)].defelt)) - n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt)); - if ((yyvsp[(5) - (11)].defelt)) - n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt)); - if ((yyvsp[(9) - (11)].defelt)) - n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt)); - if ((yyvsp[(11) - (11)].list)) - n->options = list_concat(n->options, (yyvsp[(11) - (11)].list)); - (yyval.node) = (PGNode *)n; + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); + b->booltesttype = IS_NOT_TRUE; + b->location = (yylsp[(2) - (4)]); + (yyval.node) = (PGNode *)b; + ;} + break; + + case 465: +#line 1943 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); + b->booltesttype = IS_FALSE; + b->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *)b; ;} break; case 466: -#line 31 "third_party/libpg_query/grammar/statements/copy.y" +#line 1951 "third_party/libpg_query/grammar/statements/select.y" { - PGCopyStmt *n = makeNode(PGCopyStmt); - n->relation = NULL; - n->query = (yyvsp[(3) - (9)].node); - n->attlist = NIL; - n->is_from = false; - n->is_program = (yyvsp[(6) - (9)].boolean); - n->filename = (yyvsp[(7) - (9)].str); - n->options = (yyvsp[(9) - (9)].list); - - if (n->is_program && n->filename == NULL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("STDIN/STDOUT not allowed with PROGRAM"), - parser_errposition((yylsp[(5) - (9)])))); - - (yyval.node) = (PGNode *)n; + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); + b->booltesttype = IS_NOT_FALSE; + b->location = (yylsp[(2) - (4)]); + (yyval.node) = (PGNode *)b; ;} break; case 467: -#line 53 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = true; ;} +#line 1959 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); + b->booltesttype = IS_UNKNOWN; + b->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *)b; + ;} break; case 468: -#line 54 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = false; ;} +#line 1967 "third_party/libpg_query/grammar/statements/select.y" + { + PGBooleanTest *b = makeNode(PGBooleanTest); + b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); + b->booltesttype = IS_NOT_UNKNOWN; + b->location = (yylsp[(2) - (4)]); + (yyval.node) = (PGNode *)b; + ;} break; case 469: -#line 60 "third_party/libpg_query/grammar/statements/copy.y" +#line 1975 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 470: -#line 63 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.defelt) = NULL; ;} +#line 1979 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); + ;} break; case 471: -#line 69 "third_party/libpg_query/grammar/statements/copy.y" +#line 1983 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); ;} break; case 472: -#line 73 "third_party/libpg_query/grammar/statements/copy.y" +#line 1987 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); ;} break; case 473: -#line 80 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 1991 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN, + "BETWEEN", + (yyvsp[(1) - (6)].node), + (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), + (yylsp[(2) - (6)])); + ;} break; case 474: -#line 81 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 1999 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN, + "NOT BETWEEN", + (yyvsp[(1) - (7)].node), + (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), + (yylsp[(2) - (7)])); + ;} break; case 475: -#line 85 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 2007 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM, + "BETWEEN SYMMETRIC", + (yyvsp[(1) - (6)].node), + (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), + (yylsp[(2) - (6)])); + ;} break; case 476: -#line 86 "third_party/libpg_query/grammar/statements/copy.y" - {;} +#line 2015 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM, + "NOT BETWEEN SYMMETRIC", + (yyvsp[(1) - (7)].node), + (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), + (yylsp[(2) - (7)])); + ;} break; case 477: -#line 91 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = true; ;} +#line 2023 "third_party/libpg_query/grammar/statements/select.y" + { + /* in_expr returns a PGSubLink or a list of a_exprs */ + if (IsA((yyvsp[(3) - (3)].node), PGSubLink)) + { + /* generate foo = ANY (subquery) */ + PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node); + n->subLinkType = PG_ANY_SUBLINK; + n->subLinkId = 0; + n->testexpr = (yyvsp[(1) - (3)].node); + n->operName = NIL; /* show it's IN not = ANY */ + n->location = (yylsp[(2) - (3)]); + (yyval.node) = (PGNode *)n; + } + else + { + /* generate scalar IN expression */ + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); + } + ;} break; case 478: -#line 92 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.boolean) = false; ;} +#line 2043 "third_party/libpg_query/grammar/statements/select.y" + { + /* in_expr returns a PGSubLink or a list of a_exprs */ + if (IsA((yyvsp[(4) - (4)].node), PGSubLink)) + { + /* generate NOT (foo = ANY (subquery)) */ + /* Make an = ANY node */ + PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node); + n->subLinkType = PG_ANY_SUBLINK; + n->subLinkId = 0; + n->testexpr = (yyvsp[(1) - (4)].node); + n->operName = NIL; /* show it's IN not = ANY */ + n->location = (yylsp[(2) - (4)]); + /* Stick a NOT on top; must have same parse location */ + (yyval.node) = makeNotExpr((PGNode *) n, (yylsp[(2) - (4)])); + } + else + { + /* generate scalar NOT IN expression */ + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); + } + ;} break; case 479: -#line 96 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 2065 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = (yyvsp[(3) - (4)].subquerytype); + n->subLinkId = 0; + n->testexpr = (yyvsp[(1) - (4)].node); + n->operName = (yyvsp[(2) - (4)].list); + n->subselect = (yyvsp[(4) - (4)].node); + n->location = (yylsp[(2) - (4)]); + (yyval.node) = (PGNode *)n; + ;} break; case 480: -#line 97 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 2076 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK) + (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); + else + (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); + ;} break; case 481: -#line 102 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} +#line 2083 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * The SQL spec only allows DEFAULT in "contextually typed + * expressions", but for us, it's easier to allow it in + * any a_expr and then throw error during parse analysis + * if it's in an inappropriate context. This way also + * lets us say something smarter than "syntax error". + */ + PGSetToDefault *n = makeNode(PGSetToDefault); + /* parse analysis will fill in the rest */ + n->location = (yylsp[(1) - (1)]); + (yyval.node) = (PGNode *)n; + ;} break; case 482: -#line 103 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;} +#line 2096 "third_party/libpg_query/grammar/statements/select.y" + { + PGList *func_name = list_make1(makeString("construct_array")); + PGFuncCall *n = makeFuncCall(func_name, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + (yyval.node) = (PGNode *) n; + ;} break; case 483: -#line 104 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) makeNode(PGAStar); ;} +#line 2113 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 484: -#line 105 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;} +#line 2115 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} break; case 485: -#line 106 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = NULL; ;} +#line 2117 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 486: -#line 112 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); - ;} +#line 2119 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 487: -#line 120 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (2)])); - ;} +#line 2121 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 488: -#line 123 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.defelt) = NULL; ;} +#line 2123 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 489: -#line 128 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} +#line 2125 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 490: -#line 129 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.list) = NIL; ;} +#line 2127 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 491: -#line 135 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)])); - ;} +#line 2129 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 492: -#line 138 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.defelt) = NULL; ;} +#line 2131 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 493: -#line 144 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)])); - ;} +#line 2133 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 494: -#line 148 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} +#line 2135 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 495: -#line 152 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} +#line 2137 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 496: -#line 156 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2139 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 497: -#line 160 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2141 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 498: -#line 164 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[(1) - (1)])); - ;} +#line 2143 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 499: -#line 168 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); - ;} + case 499: +#line 2145 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 500: -#line 172 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2147 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 501: -#line 176 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); - ;} +#line 2149 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; case 502: -#line 180 "third_party/libpg_query/grammar/statements/copy.y" +#line 2151 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 503: -#line 184 "third_party/libpg_query/grammar/statements/copy.y" +#line 2155 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; case 504: -#line 188 "third_party/libpg_query/grammar/statements/copy.y" +#line 2159 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[(4) - (4)].list), (yylsp[(1) - (4)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); ;} break; case 505: -#line 192 "third_party/libpg_query/grammar/statements/copy.y" +#line 2163 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); ;} break; case 506: -#line 196 "third_party/libpg_query/grammar/statements/copy.y" - { - (yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); - ;} +#line 2176 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 507: -#line 203 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} +#line 2177 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 508: -#line 209 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 2179 "third_party/libpg_query/grammar/statements/select.y" + { + PGPositionalReference *n = makeNode(PGPositionalReference); + n->position = (yyvsp[(2) - (2)].ival); + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *) n; + ;} break; case 509: -#line 210 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.str) = NULL; ;} +#line 2186 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(2) - (2)].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = makeParamRef(0, (yylsp[(1) - (2)])); + n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.node) = (PGNode *) n; + } + else + (yyval.node) = makeParamRef(0, (yylsp[(1) - (2)])); + ;} break; case 510: -#line 211 "third_party/libpg_query/grammar/statements/copy.y" - { (yyval.str) = NULL; ;} +#line 2198 "third_party/libpg_query/grammar/statements/select.y" + { + PGParamRef *p = makeNode(PGParamRef); + p->number = (yyvsp[(1) - (2)].ival); + p->location = (yylsp[(1) - (2)]); + if ((yyvsp[(2) - (2)].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = (PGNode *) p; + n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.node) = (PGNode *) n; + } + else + (yyval.node) = (PGNode *) p; + ;} break; case 511: -#line 217 "third_party/libpg_query/grammar/statements/copy.y" +#line 2213 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); + if ((yyvsp[(4) - (4)].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = (yyvsp[(2) - (4)].node); + n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner); + (yyval.node) = (PGNode *)n; + } + else + (yyval.node) = (yyvsp[(2) - (4)].node); ;} break; case 512: -#line 221 "third_party/libpg_query/grammar/statements/copy.y" +#line 2225 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + break; + + case 513: +#line 2227 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); + if ((yyvsp[(2) - (2)].list)) { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = (yyvsp[(1) - (2)].node); + n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.node) = (PGNode *)n; + } + else { + (yyval.node) = (yyvsp[(1) - (2)].node); + } ;} break; - case 513: -#line 8 "third_party/libpg_query/grammar/statements/create_function.y" + case 514: +#line 2239 "third_party/libpg_query/grammar/statements/select.y" { - PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); - n->name = (yyvsp[(3) - (6)].range); - n->params = (yyvsp[(4) - (6)].list); - n->function = (yyvsp[(6) - (6)].node); + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = PG_EXPR_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[(1) - (1)].node); + n->location = (yylsp[(1) - (1)]); (yyval.node) = (PGNode *)n; ;} break; + case 515: +#line 2250 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * Because the select_with_parens nonterminal is designed + * to "eat" as many levels of parens as possible, the + * '(' a_expr ')' opt_indirection production above will + * fail to match a sub-SELECT with indirection decoration; + * the sub-SELECT won't be regarded as an a_expr as long + * as there are parens around it. To support applying + * subscripting or field selection to a sub-SELECT result, + * we need this redundant-looking production. + */ + PGSubLink *n = makeNode(PGSubLink); + PGAIndirection *a = makeNode(PGAIndirection); + n->subLinkType = PG_EXPR_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[(1) - (2)].node); + n->location = (yylsp[(1) - (2)]); + a->arg = (PGNode *)n; + a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.node) = (PGNode *)a; + ;} + break; + case 516: -#line 24 "third_party/libpg_query/grammar/statements/create_function.y" +#line 2274 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = NIL; - ;} + PGSubLink *n = makeNode(PGSubLink); + n->subLinkType = PG_EXISTS_SUBLINK; + n->subLinkId = 0; + n->testexpr = NULL; + n->operName = NIL; + n->subselect = (yyvsp[(2) - (2)].node); + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *)n; + ;} break; case 517: -#line 28 "third_party/libpg_query/grammar/statements/create_function.y" +#line 2285 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = (yyvsp[(2) - (3)].list); - ;} + PGGroupingFunc *g = makeNode(PGGroupingFunc); + g->args = (yyvsp[(3) - (4)].list); + g->location = (yylsp[(1) - (4)]); + (yyval.node) = (PGNode *)g; + ;} break; case 518: -#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y" +#line 2294 "third_party/libpg_query/grammar/statements/select.y" { - PGCheckPointStmt *n = makeNode(PGCheckPointStmt); - n->force = true; - (yyval.node) = (PGNode *)n; + (yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)])); ;} break; case 519: -#line 12 "third_party/libpg_query/grammar/statements/checkpoint.y" +#line 2298 "third_party/libpg_query/grammar/statements/select.y" { - PGCheckPointStmt *n = makeNode(PGCheckPointStmt); - n->force = false; + PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(3) - (6)].list), (yylsp[(1) - (6)])); + n->agg_order = (yyvsp[(4) - (6)].list); + n->agg_ignore_nulls = (yyvsp[(5) - (6)].boolean); + (yyval.node) = (PGNode *)n; + ;} + break; + + case 520: +#line 2305 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), (yylsp[(1) - (7)])); + n->func_variadic = true; + n->agg_order = (yyvsp[(5) - (7)].list); + n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); + (yyval.node) = (PGNode *)n; + ;} + break; + + case 521: +#line 2313 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[(1) - (9)].list), lappend((yyvsp[(3) - (9)].list), (yyvsp[(6) - (9)].node)), (yylsp[(1) - (9)])); + n->func_variadic = true; + n->agg_order = (yyvsp[(7) - (9)].list); + n->agg_ignore_nulls = (yyvsp[(8) - (9)].boolean); + (yyval.node) = (PGNode *)n; + ;} + break; + + case 522: +#line 2321 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); + n->agg_order = (yyvsp[(5) - (7)].list); + n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); + /* Ideally we'd mark the PGFuncCall node to indicate + * "must be an aggregate", but there's no provision + * for that in PGFuncCall at the moment. + */ + (yyval.node) = (PGNode *)n; + ;} + break; + + case 523: +#line 2332 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); + n->agg_order = (yyvsp[(5) - (7)].list); + n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); + n->agg_distinct = true; + (yyval.node) = (PGNode *)n; + ;} + break; + + case 524: +#line 2340 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * We consider AGGREGATE(*) to invoke a parameterless + * aggregate. This does the right thing for COUNT(*), + * and there are no other aggregates in SQL that accept + * '*' as parameter. + * + * The PGFuncCall node is also marked agg_star = true, + * so that later processing can detect what the argument + * really was. + */ + PGFuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, (yylsp[(1) - (4)])); + n->agg_star = true; (yyval.node) = (PGNode *)n; ;} break; - case 520: -#line 8 "third_party/libpg_query/grammar/statements/prepare.y" - { - PGPrepareStmt *n = makeNode(PGPrepareStmt); - n->name = (yyvsp[(2) - (5)].str); - n->argtypes = (yyvsp[(3) - (5)].list); - n->query = (yyvsp[(5) - (5)].node); - (yyval.node) = (PGNode *) n; - ;} + case 525: +#line 2368 "third_party/libpg_query/grammar/statements/select.y" + { + PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (4)].node); + /* + * The order clause for WITHIN GROUP and the one for + * plain-aggregate ORDER BY share a field, so we have to + * check here that at most one is present. We also check + * for DISTINCT and VARIADIC here to give a better error + * location. Other consistency checks are deferred to + * parse analysis. + */ + if ((yyvsp[(2) - (4)].list) != NIL) + { + if (n->agg_order != NIL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), + parser_errposition((yylsp[(2) - (4)])))); + if (n->agg_distinct) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("cannot use DISTINCT with WITHIN GROUP"), + parser_errposition((yylsp[(2) - (4)])))); + if (n->func_variadic) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("cannot use VARIADIC with WITHIN GROUP"), + parser_errposition((yylsp[(2) - (4)])))); + n->agg_order = (yyvsp[(2) - (4)].list); + n->agg_within_group = true; + } + n->agg_filter = (yyvsp[(3) - (4)].node); + n->over = (yyvsp[(4) - (4)].windef); + (yyval.node) = (PGNode *) n; + ;} + break; + + case 526: +#line 2403 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 521: -#line 18 "third_party/libpg_query/grammar/statements/prepare.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + case 527: +#line 2413 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 522: -#line 19 "third_party/libpg_query/grammar/statements/prepare.y" - { (yyval.list) = NIL; ;} + case 528: +#line 2414 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 527: -#line 12 "third_party/libpg_query/grammar/statements/update.y" + case 529: +#line 2422 "third_party/libpg_query/grammar/statements/select.y" { - PGUpdateStmt *n = makeNode(PGUpdateStmt); - n->relation = (yyvsp[(3) - (8)].range); - n->targetList = (yyvsp[(5) - (8)].list); - n->fromClause = (yyvsp[(6) - (8)].list); - n->whereClause = (yyvsp[(7) - (8)].node); - n->returningList = (yyvsp[(8) - (8)].list); - n->withClause = (yyvsp[(1) - (8)].with); - (yyval.node) = (PGNode *)n; + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"), + list_make1((yyvsp[(4) - (5)].node)), + (yylsp[(1) - (5)])); ;} break; case 530: -#line 52 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (3)].node); ;} +#line 2428 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)])); + ;} break; case 531: -#line 53 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (3)].node); ;} +#line 2432 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)])); + ;} break; case 532: -#line 68 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2436 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); + ;} break; case 533: -#line 70 "third_party/libpg_query/grammar/statements/select.y" +#line 2440 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, - NULL, NULL, NULL, - yyscanner); - (yyval.node) = (yyvsp[(1) - (2)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)])); ;} break; case 534: -#line 77 "third_party/libpg_query/grammar/statements/select.y" +#line 2444 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), - (PGNode*) list_nth((yyvsp[(4) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 1), - NULL, - yyscanner); - (yyval.node) = (yyvsp[(1) - (4)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 535: -#line 85 "third_party/libpg_query/grammar/statements/select.y" +#line 2448 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), - (PGNode*) list_nth((yyvsp[(3) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 1), - NULL, - yyscanner); - (yyval.node) = (yyvsp[(1) - (4)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)])); ;} break; case 536: -#line 93 "third_party/libpg_query/grammar/statements/select.y" +#line 2452 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, - NULL, NULL, - (yyvsp[(1) - (2)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (2)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 537: -#line 101 "third_party/libpg_query/grammar/statements/select.y" +#line 2456 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, - NULL, NULL, - (yyvsp[(1) - (3)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (3)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)])); ;} break; case 538: -#line 109 "third_party/libpg_query/grammar/statements/select.y" +#line 2460 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), - (PGNode*) list_nth((yyvsp[(5) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 1), - (yyvsp[(1) - (5)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (5)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 539: -#line 117 "third_party/libpg_query/grammar/statements/select.y" +#line 2464 "third_party/libpg_query/grammar/statements/select.y" { - insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), - (PGNode*) list_nth((yyvsp[(4) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 1), - (yyvsp[(1) - (5)].with), - yyscanner); - (yyval.node) = (yyvsp[(2) - (5)].node); + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)])); ;} break; case 540: -#line 127 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2468 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)])); + ;} break; case 541: -#line 128 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2472 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)])); + ;} break; case 542: -#line 158 "third_party/libpg_query/grammar/statements/select.y" +#line 2476 "third_party/libpg_query/grammar/statements/select.y" { - PGSelectStmt *n = makeNode(PGSelectStmt); - n->targetList = (yyvsp[(3) - (10)].list); - n->intoClause = (yyvsp[(4) - (10)].into); - n->fromClause = (yyvsp[(5) - (10)].list); - n->whereClause = (yyvsp[(6) - (10)].node); - n->groupClause = (yyvsp[(7) - (10)].list); - n->havingClause = (yyvsp[(8) - (10)].node); - n->windowClause = (yyvsp[(9) - (10)].list); - n->sampleOptions = (yyvsp[(10) - (10)].node); - (yyval.node) = (PGNode *)n; + (yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[(1) - (1)])); ;} break; case 543: -#line 173 "third_party/libpg_query/grammar/statements/select.y" +#line 2480 "third_party/libpg_query/grammar/statements/select.y" { - PGSelectStmt *n = makeNode(PGSelectStmt); - n->distinctClause = (yyvsp[(2) - (10)].list); - n->targetList = (yyvsp[(3) - (10)].list); - n->intoClause = (yyvsp[(4) - (10)].into); - n->fromClause = (yyvsp[(5) - (10)].list); - n->whereClause = (yyvsp[(6) - (10)].node); - n->groupClause = (yyvsp[(7) - (10)].list); - n->havingClause = (yyvsp[(8) - (10)].node); - n->windowClause = (yyvsp[(9) - (10)].list); - n->sampleOptions = (yyvsp[(10) - (10)].node); - (yyval.node) = (PGNode *)n; + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)])); ;} break; case 544: -#line 186 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2484 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)])); + ;} break; case 545: -#line 188 "third_party/libpg_query/grammar/statements/select.y" - { - /* same as SELECT * FROM relation_expr */ - PGColumnRef *cr = makeNode(PGColumnRef); - PGResTarget *rt = makeNode(PGResTarget); - PGSelectStmt *n = makeNode(PGSelectStmt); - - cr->fields = list_make1(makeNode(PGAStar)); - cr->location = -1; - - rt->name = NULL; - rt->indirection = NIL; - rt->val = (PGNode *)cr; - rt->location = -1; - - n->targetList = list_make1(rt); - n->fromClause = list_make1((yyvsp[(2) - (2)].range)); - (yyval.node) = (PGNode *)n; - ;} +#line 2488 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 0, (yylsp[(1) - (6)])); ;} break; case 546: -#line 207 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); - ;} +#line 2490 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 1, (yylsp[(1) - (6)])); ;} break; case 547: -#line 211 "third_party/libpg_query/grammar/statements/select.y" +#line 2492 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 548: -#line 215 "third_party/libpg_query/grammar/statements/select.y" +#line 2496 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); + /* overlay(A PLACING B FROM C FOR D) is converted to + * overlay(A, B, C, D) + * overlay(A PLACING B FROM C) is converted to + * overlay(A, B, C) + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 549: -#line 232 "third_party/libpg_query/grammar/statements/select.y" +#line 2505 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.with) = makeNode(PGWithClause); - (yyval.with)->ctes = (yyvsp[(2) - (2)].list); - (yyval.with)->recursive = false; - (yyval.with)->location = (yylsp[(1) - (2)]); - ;} + /* position(A in B) is converted to position(B, A) */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + ;} break; case 550: -#line 239 "third_party/libpg_query/grammar/statements/select.y" +#line 2510 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.with) = makeNode(PGWithClause); - (yyval.with)->ctes = (yyvsp[(2) - (2)].list); - (yyval.with)->recursive = false; - (yyval.with)->location = (yylsp[(1) - (2)]); - ;} + /* substring(A from B for C) is converted to + * substring(A, B, C) - thomas 2000-11-28 + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + ;} break; case 551: -#line 246 "third_party/libpg_query/grammar/statements/select.y" +#line 2517 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.with) = makeNode(PGWithClause); - (yyval.with)->ctes = (yyvsp[(3) - (3)].list); - (yyval.with)->recursive = true; - (yyval.with)->location = (yylsp[(1) - (3)]); - ;} + /* TREAT(expr AS target) converts expr of a particular type to target, + * which is defined to be a subtype of the original expression. + * In SQL99, this is intended for use with structured UDTs, + * but let's make this a generally useful form allowing stronger + * coercions than are handled by implicit casting. + * + * Convert SystemTypeName() to SystemFuncName() even though + * at the moment they result in the same thing. + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str), + list_make1((yyvsp[(3) - (6)].node)), + (yylsp[(1) - (6)])); + ;} break; case 552: -#line 255 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 2532 "third_party/libpg_query/grammar/statements/select.y" + { + /* various trim expressions are defined in SQL + * - thomas 1997-07-19 + */ + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + ;} break; case 553: -#line 256 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 2539 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + ;} break; case 554: -#line 260 "third_party/libpg_query/grammar/statements/select.y" +#line 2543 "third_party/libpg_query/grammar/statements/select.y" { - PGCommonTableExpr *n = makeNode(PGCommonTableExpr); - n->ctename = (yyvsp[(1) - (6)].str); - n->aliascolnames = (yyvsp[(2) - (6)].list); - n->ctequery = (yyvsp[(5) - (6)].node); - n->location = (yylsp[(1) - (6)]); - (yyval.node) = (PGNode *) n; - ;} + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + ;} break; case 555: -#line 272 "third_party/libpg_query/grammar/statements/select.y" +#line 2547 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.into) = makeNode(PGIntoClause); - (yyval.into)->rel = (yyvsp[(2) - (2)].range); - (yyval.into)->colNames = NIL; - (yyval.into)->options = NIL; - (yyval.into)->onCommit = PG_ONCOMMIT_NOOP; - (yyval.into)->viewQuery = NULL; - (yyval.into)->skipData = false; + (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 556: -#line 282 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.into) = NULL; ;} +#line 2551 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); + ;} break; case 557: -#line 291 "third_party/libpg_query/grammar/statements/select.y" +#line 2555 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.range) = (yyvsp[(3) - (3)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; + PGCoalesceExpr *c = makeNode(PGCoalesceExpr); + c->args = (yyvsp[(3) - (4)].list); + c->location = (yylsp[(1) - (4)]); + (yyval.node) = (PGNode *)c; ;} break; case 558: -#line 296 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(3) - (3)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2568 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 559: -#line 301 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} - break; - - case 560: -#line 306 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2569 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; - - case 561: -#line 311 "third_party/libpg_query/grammar/statements/select.y" - { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (4)])))); - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} + + case 560: +#line 2573 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(4) - (5)].node); ;} + break; + + case 561: +#line 2574 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; case 562: -#line 319 "third_party/libpg_query/grammar/statements/select.y" - { - ereport(PGWARNING, - (errmsg("GLOBAL is deprecated in temporary table creation"), - parser_errposition((yylsp[(1) - (4)])))); - (yyval.range) = (yyvsp[(4) - (4)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP; - ;} +#line 2582 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 563: -#line 327 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(3) - (3)].range); - (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED; - ;} +#line 2583 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 564: -#line 332 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(2) - (2)].range); - (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; - ;} +#line 2587 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} break; case 565: -#line 337 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = (yyvsp[(1) - (1)].range); - (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; - ;} +#line 2589 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} break; case 566: -#line 343 "third_party/libpg_query/grammar/statements/select.y" - {;} +#line 2594 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[(3) - (3)].windef); + n->name = (yyvsp[(1) - (3)].str); + (yyval.windef) = n; + ;} break; case 567: -#line 344 "third_party/libpg_query/grammar/statements/select.y" - {;} +#line 2602 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} break; case 568: -#line 348 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} +#line 2604 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->name = (yyvsp[(2) - (2)].str); + n->refname = NULL; + n->partitionClause = NIL; + n->orderClause = NIL; + n->frameOptions = FRAMEOPTION_DEFAULTS; + n->startOffset = NULL; + n->endOffset = NULL; + n->location = (yylsp[(2) - (2)]); + (yyval.windef) = n; + ;} break; case 569: -#line 349 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 2617 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.windef) = NULL; ;} break; case 570: -#line 350 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 2622 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->name = NULL; + n->refname = (yyvsp[(2) - (6)].str); + n->partitionClause = (yyvsp[(3) - (6)].list); + n->orderClause = (yyvsp[(4) - (6)].list); + /* copy relevant fields of opt_frame_clause */ + n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions; + n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset; + n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset; + n->location = (yylsp[(1) - (6)]); + (yyval.windef) = n; + ;} break; case 571: -#line 357 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(NIL); ;} +#line 2647 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 572: -#line 358 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(4) - (5)].list); ;} +#line 2648 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = NULL; ;} break; case 573: -#line 362 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL;;} +#line 2651 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 574: -#line 363 "third_party/libpg_query/grammar/statements/select.y" +#line 2652 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; case 575: -#line 367 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true;;} +#line 2664 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[(2) - (2)].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; + (yyval.windef) = n; + ;} break; case 576: -#line 368 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false;;} +#line 2670 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[(2) - (2)].windef); + n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; + (yyval.windef) = n; + ;} break; case 577: -#line 369 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 2676 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_DEFAULTS; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + ;} break; case 578: -#line 373 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list);;} +#line 2686 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = (yyvsp[(1) - (1)].windef); + /* reject invalid cases */ + if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame start cannot be UNBOUNDED FOLLOWING"), + parser_errposition((yylsp[(1) - (1)])))); + if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from following row cannot end with current row"), + parser_errposition((yylsp[(1) - (1)])))); + n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; + (yyval.windef) = n; + ;} break; case 579: -#line 374 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 2703 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n1 = (yyvsp[(2) - (4)].windef); + PGWindowDef *n2 = (yyvsp[(4) - (4)].windef); + /* form merged options */ + int frameOptions = n1->frameOptions; + /* shift converts START_ options to END_ options */ + frameOptions |= n2->frameOptions << 1; + frameOptions |= FRAMEOPTION_BETWEEN; + /* reject invalid cases */ + if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame start cannot be UNBOUNDED FOLLOWING"), + parser_errposition((yylsp[(2) - (4)])))); + if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame end cannot be UNBOUNDED PRECEDING"), + parser_errposition((yylsp[(4) - (4)])))); + if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && + (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from current row cannot have preceding rows"), + parser_errposition((yylsp[(4) - (4)])))); + if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) && + (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING | + FRAMEOPTION_END_CURRENT_ROW))) + ereport(ERROR, + (errcode(PG_ERRCODE_WINDOWING_ERROR), + errmsg("frame starting from following row cannot have preceding rows"), + parser_errposition((yylsp[(4) - (4)])))); + n1->frameOptions = frameOptions; + n1->endOffset = n2->startOffset; + (yyval.windef) = n1; + ;} break; case 580: -#line 378 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} +#line 2748 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + ;} break; case 581: -#line 382 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} +#line 2756 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + ;} break; case 582: -#line 383 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} +#line 2764 "third_party/libpg_query/grammar/statements/select.y" + { + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; + n->startOffset = NULL; + n->endOffset = NULL; + (yyval.windef) = n; + ;} break; case 583: -#line 387 "third_party/libpg_query/grammar/statements/select.y" +#line 2772 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.sortby) = makeNode(PGSortBy); - (yyval.sortby)->node = (yyvsp[(1) - (4)].node); - (yyval.sortby)->sortby_dir = SORTBY_USING; - (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder); - (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list); - (yyval.sortby)->location = (yylsp[(3) - (4)]); + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING; + n->startOffset = (yyvsp[(1) - (2)].node); + n->endOffset = NULL; + (yyval.windef) = n; ;} break; case 584: -#line 396 "third_party/libpg_query/grammar/statements/select.y" +#line 2780 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.sortby) = makeNode(PGSortBy); - (yyval.sortby)->node = (yyvsp[(1) - (3)].node); - (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder); - (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder); - (yyval.sortby)->useOp = NIL; - (yyval.sortby)->location = -1; /* no operator */ + PGWindowDef *n = makeNode(PGWindowDef); + n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING; + n->startOffset = (yyvsp[(1) - (2)].node); + n->endOffset = NULL; + (yyval.windef) = n; ;} break; case 585: -#line 406 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.sortorder) = PG_SORTBY_ASC; ;} +#line 2800 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 586: -#line 407 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.sortorder) = PG_SORTBY_DESC; ;} +#line 2801 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 587: -#line 408 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;} +#line 2804 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list);;} break; case 588: -#line 411 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;} +#line 2805 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 589: -#line 412 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; ;} +#line 2809 "third_party/libpg_query/grammar/statements/select.y" + { + PGNamedArgExpr *na = makeNode(PGNamedArgExpr); + na->name = (yyvsp[(1) - (3)].str); + na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); + na->argnumber = -1; + na->location = (yylsp[(1) - (3)]); + (yyval.node) = (PGNode *) na; + ;} break; case 590: -#line 413 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;} +#line 2819 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 591: -#line 417 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;} +#line 2820 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 592: -#line 418 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} +#line 2822 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} break; case 593: -#line 419 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;} +#line 2823 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} break; case 594: -#line 420 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;} +#line 2824 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.subquerytype) = PG_ALL_SUBLINK; ;} break; case 595: -#line 424 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 2827 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 596: -#line 425 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2(NULL,NULL); ;} +#line 2828 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;} break; case 597: -#line 430 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 2831 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "+"; ;} break; case 598: -#line 432 "third_party/libpg_query/grammar/statements/select.y" - { - /* Disabled because it was too confusing, bjm 2002-02-18 */ - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("LIMIT #,# syntax is not supported"), - errhint("Use separate LIMIT and OFFSET clauses."), - parser_errposition((yylsp[(1) - (4)])))); - ;} +#line 2832 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "-"; ;} break; case 599: -#line 448 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(3) - (5)].node); ;} +#line 2833 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "*"; ;} break; case 600: -#line 450 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeIntConst(1, -1); ;} +#line 2834 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "/"; ;} break; case 601: -#line 455 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 2835 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "%"; ;} break; case 602: -#line 458 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (3)].node); ;} +#line 2836 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "^"; ;} break; case 603: -#line 466 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); - ;} +#line 2837 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "<"; ;} break; case 604: -#line 470 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); - ;} +#line 2838 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = ">"; ;} break; case 605: -#line 474 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); - ;} +#line 2839 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "="; ;} break; case 606: -#line 478 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); - ;} +#line 2840 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "<="; ;} break; case 607: -#line 482 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (1)].ival)), false); - ;} +#line 2841 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = ">="; ;} break; case 608: -#line 486 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), false); - ;} +#line 2842 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.conststr) = "<>"; ;} break; case 609: -#line 493 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(3) - (3)].node); - ;} +#line 2846 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 610: -#line 497 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 2848 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 611: -#line 504 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 2853 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 612: -#line 505 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = NULL; ;} +#line 2855 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 613: -#line 510 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleOptions((yyvsp[(3) - (5)].node), (yyvsp[(1) - (5)].str), (yyvsp[(5) - (5)].ival), (yylsp[(1) - (5)])); - ;} +#line 2860 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 614: -#line 514 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleOptions((yyvsp[(1) - (1)].node), NULL, -1, (yylsp[(1) - (1)])); - ;} +#line 2862 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 615: -#line 518 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleOptions((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].str), -1, (yylsp[(1) - (4)])); - ;} +#line 2864 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("~~")); ;} break; case 616: -#line 522 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleOptions((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].str), (yyvsp[(5) - (6)].ival), (yylsp[(1) - (6)])); - ;} +#line 2866 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("!~~")); ;} break; case 617: -#line 529 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(2) - (2)].node); - ;} +#line 2868 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("~~~")); ;} break; case 618: -#line 535 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2870 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("!~~~")); ;} break; case 619: -#line 536 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 2872 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("~~*")); ;} break; case 620: -#line 541 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;} +#line 2874 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString("!~~*")); ;} break; case 621: -#line 542 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = -1; ;} +#line 2888 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 622: -#line 546 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2890 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} break; case 623: -#line 548 "third_party/libpg_query/grammar/statements/select.y" +#line 2894 "third_party/libpg_query/grammar/statements/select.y" { - /* LIMIT ALL is represented as a NULL constant */ - (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); + (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 624: -#line 553 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;} +#line 2898 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); + ;} break; case 625: -#line 555 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;} +#line 2905 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = (yyvsp[(1) - (1)].list); + ;} break; case 626: -#line 557 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;} +#line 2909 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = NULL; + ;} break; case 627: -#line 561 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2917 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); + ;} break; case 628: -#line 581 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2921 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); + ;} break; case 629: -#line 583 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 2927 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (yyvsp[(1) - (1)].node); + ;} break; case 630: -#line 585 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 2931 "third_party/libpg_query/grammar/statements/select.y" + { + PGNamedArgExpr *na = makeNode(PGNamedArgExpr); + na->name = (yyvsp[(1) - (3)].str); + na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); + na->argnumber = -1; /* until determined */ + na->location = (yylsp[(1) - (3)]); + (yyval.node) = (PGNode *) na; + ;} break; case 631: -#line 589 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} +#line 2940 "third_party/libpg_query/grammar/statements/select.y" + { + PGNamedArgExpr *na = makeNode(PGNamedArgExpr); + na->name = (yyvsp[(1) - (3)].str); + na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); + na->argnumber = -1; /* until determined */ + na->location = (yylsp[(1) - (3)]); + (yyval.node) = (PGNode *) na; + ;} break; case 632: -#line 590 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} +#line 2950 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; case 633: -#line 594 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 2951 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; case 634: -#line 595 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 2956 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); + ;} break; case 635: -#line 598 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 2959 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 636: -#line 599 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} +#line 2966 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 637: -#line 624 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} +#line 2967 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "year"; ;} break; case 638: -#line 625 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 2968 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "month"; ;} break; case 639: -#line 629 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 2969 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "day"; ;} break; case 640: -#line 630 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} +#line 2970 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "hour"; ;} break; case 641: -#line 634 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2971 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "minute"; ;} break; case 642: -#line 635 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2972 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "second"; ;} break; case 643: -#line 636 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2973 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "millisecond"; ;} break; case 644: -#line 637 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2974 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (char*) "microsecond"; ;} break; case 645: -#line 638 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 2975 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 646: -#line 643 "third_party/libpg_query/grammar/statements/select.y" +#line 2986 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); + (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 647: -#line 656 "third_party/libpg_query/grammar/statements/select.y" +#line 2990 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 648: -#line 663 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 2997 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 649: -#line 670 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); - ;} +#line 3003 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} break; case 650: -#line 676 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3004 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 651: -#line 677 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3021 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} break; case 652: -#line 681 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3025 "third_party/libpg_query/grammar/statements/select.y" + { + /* not legal per SQL99, but might as well allow it */ + (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node)); + ;} break; case 653: -#line 682 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3030 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); + ;} break; case 654: -#line 686 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 3034 "third_party/libpg_query/grammar/statements/select.y" + { + /* + * Since there are no cases where this syntax allows + * a textual FOR value, we forcibly cast the argument + * to int4. The possible matches in pg_proc are + * substring(text,int4) and substring(text,text), + * and we don't want the parser to choose the latter, + * which it is likely to do if the second argument + * is unknown or doesn't have an implicit cast to int4. + */ + (yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1), + makeTypeCast((yyvsp[(2) - (2)].node), + SystemTypeName("int4"), 0, -1)); + ;} break; case 655: -#line 687 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3049 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = (yyvsp[(1) - (1)].list); + ;} break; case 656: -#line 691 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 3053 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 657: -#line 692 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3057 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 658: -#line 696 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 3060 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 659: -#line 697 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 3063 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} break; case 660: -#line 702 "third_party/libpg_query/grammar/statements/select.y" - { - PGLockingClause *n = makeNode(PGLockingClause); - n->lockedRels = (yyvsp[(2) - (3)].list); - n->strength = (yyvsp[(1) - (3)].lockstrength); - n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy); - (yyval.node) = (PGNode *) n; - ;} +#line 3064 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 661: -#line 712 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = LCS_FORUPDATE; ;} +#line 3065 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 662: -#line 713 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;} +#line 3069 "third_party/libpg_query/grammar/statements/select.y" + { + PGSubLink *n = makeNode(PGSubLink); + n->subselect = (yyvsp[(1) - (1)].node); + /* other fields will be filled later */ + (yyval.node) = (PGNode *)n; + ;} break; case 663: -#line 714 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = PG_LCS_FORSHARE; ;} +#line 3075 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;} break; case 664: -#line 715 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;} +#line 3086 "third_party/libpg_query/grammar/statements/select.y" + { + PGCaseExpr *c = makeNode(PGCaseExpr); + c->casetype = InvalidOid; /* not analyzed yet */ + c->arg = (PGExpr *) (yyvsp[(2) - (5)].node); + c->args = (yyvsp[(3) - (5)].list); + c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node); + c->location = (yylsp[(1) - (5)]); + (yyval.node) = (PGNode *)c; + ;} break; case 665: -#line 719 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 3099 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 666: -#line 720 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3100 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 667: -#line 725 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockwaitpolicy) = LockWaitError; ;} +#line 3105 "third_party/libpg_query/grammar/statements/select.y" + { + PGCaseWhen *w = makeNode(PGCaseWhen); + w->expr = (PGExpr *) (yyvsp[(2) - (4)].node); + w->result = (PGExpr *) (yyvsp[(4) - (4)].node); + w->location = (yylsp[(1) - (4)]); + (yyval.node) = (PGNode *)w; + ;} break; case 668: -#line 726 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;} +#line 3115 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 669: -#line 727 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;} +#line 3116 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; case 670: -#line 737 "third_party/libpg_query/grammar/statements/select.y" - { - PGSelectStmt *n = makeNode(PGSelectStmt); - n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); - (yyval.node) = (PGNode *) n; - ;} +#line 3119 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 671: -#line 743 "third_party/libpg_query/grammar/statements/select.y" - { - PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node); - n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); - (yyval.node) = (PGNode *) n; - ;} +#line 3120 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; case 672: -#line 760 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 3124 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); + ;} break; case 673: -#line 761 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3128 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); + ;} break; case 674: -#line 765 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 3135 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeString((yyvsp[(2) - (2)].str)); + ;} break; case 675: -#line 766 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 3139 "third_party/libpg_query/grammar/statements/select.y" + { + PGAIndices *ai = makeNode(PGAIndices); + ai->is_slice = false; + ai->lidx = NULL; + ai->uidx = (yyvsp[(2) - (3)].node); + (yyval.node) = (PGNode *) ai; + ;} break; case 676: -#line 773 "third_party/libpg_query/grammar/statements/select.y" +#line 3147 "third_party/libpg_query/grammar/statements/select.y" { - (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias); - (yyvsp[(1) - (3)].range)->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) (yyvsp[(1) - (3)].range); + PGAIndices *ai = makeNode(PGAIndices); + ai->is_slice = true; + ai->lidx = (yyvsp[(2) - (5)].node); + ai->uidx = (yyvsp[(4) - (5)].node); + (yyval.node) = (PGNode *) ai; ;} break; case 677: -#line 779 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node); - n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list)); - n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (3)].list)); - n->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 3157 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 678: -#line 787 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node); - n->lateral = true; - n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list)); - n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list)); - (yyval.node) = (PGNode *) n; - ;} +#line 3158 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; case 679: -#line 795 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeSubselect *n = makeNode(PGRangeSubselect); - n->lateral = false; - n->subquery = (yyvsp[(1) - (3)].node); - n->alias = (yyvsp[(2) - (3)].alias); - n->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) n; - ;} +#line 3162 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 680: -#line 804 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeSubselect *n = makeNode(PGRangeSubselect); - n->lateral = true; - n->subquery = (yyvsp[(2) - (3)].node); - n->alias = (yyvsp[(3) - (3)].alias); - n->sample = NULL; - (yyval.node) = (PGNode *) n; - ;} +#line 3163 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 681: -#line 813 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr); - ;} +#line 3167 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 682: -#line 817 "third_party/libpg_query/grammar/statements/select.y" - { - (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); - (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr); - ;} - break; - - case 683: -#line 843 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); - ;} - break; - - case 684: -#line 847 "third_party/libpg_query/grammar/statements/select.y" - { - /* CROSS JOIN is same as unqualified inner join */ - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = PG_JOIN_INNER; - n->isNatural = false; - n->larg = (yyvsp[(1) - (4)].node); - n->rarg = (yyvsp[(4) - (4)].node); - n->usingClause = NIL; - n->quals = NULL; - n->location = (yylsp[(2) - (4)]); - (yyval.jexpr) = n; - ;} +#line 3168 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 685: -#line 860 "third_party/libpg_query/grammar/statements/select.y" - { - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = (yyvsp[(2) - (5)].jtype); - n->isNatural = false; - n->larg = (yyvsp[(1) - (5)].node); - n->rarg = (yyvsp[(4) - (5)].node); - if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList)) - n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */ - else - n->quals = (yyvsp[(5) - (5)].node); /* ON clause */ - n->location = (yylsp[(2) - (5)]); - (yyval.jexpr) = n; - ;} +#line 3182 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 686: -#line 874 "third_party/libpg_query/grammar/statements/select.y" - { - /* letting join_type reduce to empty doesn't work */ - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = PG_JOIN_INNER; - n->isNatural = false; - n->larg = (yyvsp[(1) - (4)].node); - n->rarg = (yyvsp[(3) - (4)].node); - if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), PGList)) - n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */ - else - n->quals = (yyvsp[(4) - (4)].node); /* ON clause */ - n->location = (yylsp[(2) - (4)]); - (yyval.jexpr) = n; - ;} +#line 3183 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} break; case 687: -#line 889 "third_party/libpg_query/grammar/statements/select.y" - { - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = (yyvsp[(3) - (5)].jtype); - n->isNatural = true; - n->larg = (yyvsp[(1) - (5)].node); - n->rarg = (yyvsp[(5) - (5)].node); - n->usingClause = NIL; /* figure out which columns later... */ - n->quals = NULL; /* fill later */ - n->location = (yylsp[(2) - (5)]); - (yyval.jexpr) = n; - ;} +#line 3187 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 688: -#line 901 "third_party/libpg_query/grammar/statements/select.y" - { - /* letting join_type reduce to empty doesn't work */ - PGJoinExpr *n = makeNode(PGJoinExpr); - n->jointype = PG_JOIN_INNER; - n->isNatural = true; - n->larg = (yyvsp[(1) - (4)].node); - n->rarg = (yyvsp[(4) - (4)].node); - n->usingClause = NIL; /* figure out which columns later... */ - n->quals = NULL; /* fill later */ - n->location = (yylsp[(2) - (4)]); - (yyval.jexpr) = n; - ;} +#line 3188 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 689: -#line 917 "third_party/libpg_query/grammar/statements/select.y" +#line 3192 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); - (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[(3) - (3)].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node); + (yyval.target)->location = (yylsp[(1) - (3)]); ;} break; case 690: -#line 923 "third_party/libpg_query/grammar/statements/select.y" +#line 3208 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[(2) - (2)].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node); + (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 691: -#line 928 "third_party/libpg_query/grammar/statements/select.y" +#line 3216 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); - (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node); + (yyval.target)->location = (yylsp[(1) - (1)]); ;} break; case 692: -#line 934 "third_party/libpg_query/grammar/statements/select.y" +#line 3224 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.alias) = makeNode(PGAlias); - (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); + PGColumnRef *n = makeNode(PGColumnRef); + PGAStar *star = makeNode(PGAStar); + n->fields = list_make1(star); + n->location = (yylsp[(1) - (3)]); + star->except_list = (yyvsp[(2) - (3)].list); + star->replace_list = (yyvsp[(3) - (3)].list); + + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)n; + (yyval.target)->location = (yylsp[(1) - (3)]); ;} break; case 693: -#line 940 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} +#line 3239 "third_party/libpg_query/grammar/statements/select.y" + { + PGColumnRef *n = makeNode(PGColumnRef); + PGAStar *star = makeNode(PGAStar); + n->fields = list_make1(star); + n->location = (yylsp[(1) - (5)]); + star->relation = (yyvsp[(1) - (5)].str); + star->except_list = (yyvsp[(4) - (5)].list); + star->replace_list = (yyvsp[(5) - (5)].list); + + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = NULL; + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)n; + (yyval.target)->location = (yylsp[(1) - (5)]); + ;} break; case 694: -#line 941 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.alias) = NULL; ;} +#line 3256 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 695: -#line 950 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); - ;} +#line 3257 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} break; case 696: -#line 954 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); - ;} +#line 3260 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 697: -#line 958 "third_party/libpg_query/grammar/statements/select.y" - { - PGAlias *a = makeNode(PGAlias); - a->aliasname = (yyvsp[(2) - (5)].str); - (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); - ;} +#line 3261 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NULL; ;} break; case 698: -#line 964 "third_party/libpg_query/grammar/statements/select.y" - { - PGAlias *a = makeNode(PGAlias); - a->aliasname = (yyvsp[(1) - (4)].str); - (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); - ;} +#line 3264 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;} break; - - case 699: -#line 970 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make2(NULL, NIL); - ;} + + case 699: +#line 3268 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 700: -#line 975 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_FULL; ;} +#line 3269 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 701: -#line 976 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_LEFT; ;} +#line 3272 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 702: -#line 977 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_RIGHT; ;} +#line 3273 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;} break; case 703: -#line 978 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.jtype) = PG_JOIN_INNER; ;} +#line 3274 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NULL; ;} break; case 704: -#line 982 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3284 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 705: -#line 983 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3285 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 706: -#line 995 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;} +#line 3297 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + ;} break; case 707: -#line 996 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3301 "third_party/libpg_query/grammar/statements/select.y" + { + check_qualified_name((yyvsp[(2) - (2)].list), yyscanner); + (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)])); + switch (list_length((yyvsp[(2) - (2)].list))) + { + case 1: + (yyval.range)->catalogname = NULL; + (yyval.range)->schemaname = (yyvsp[(1) - (2)].str); + (yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list))); + break; + case 2: + (yyval.range)->catalogname = (yyvsp[(1) - (2)].str); + (yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list))); + (yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list))); + break; + default: + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("improper qualified name (too many dotted names): %s", + NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))), + parser_errposition((yylsp[(1) - (2)])))); + break; + } + ;} break; case 708: -#line 1002 "third_party/libpg_query/grammar/statements/select.y" - { - /* inheritance query, implicitly */ - (yyval.range) = (yyvsp[(1) - (1)].range); - (yyval.range)->inh = true; - (yyval.range)->alias = NULL; - ;} +#line 3328 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 709: -#line 1009 "third_party/libpg_query/grammar/statements/select.y" - { - /* inheritance query, explicitly */ - (yyval.range) = (yyvsp[(1) - (2)].range); - (yyval.range)->inh = true; - (yyval.range)->alias = NULL; - ;} +#line 3330 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 710: -#line 1016 "third_party/libpg_query/grammar/statements/select.y" - { - /* no inheritance */ - (yyval.range) = (yyvsp[(2) - (2)].range); - (yyval.range)->inh = false; - (yyval.range)->alias = NULL; - ;} +#line 3334 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 711: -#line 1023 "third_party/libpg_query/grammar/statements/select.y" - { - /* no inheritance, SQL99-style syntax */ - (yyval.range) = (yyvsp[(3) - (4)].range); - (yyval.range)->inh = false; - (yyval.range)->alias = NULL; - ;} +#line 3336 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 712: -#line 1055 "third_party/libpg_query/grammar/statements/select.y" - { - PGRangeFunction *n = makeNode(PGRangeFunction); - n->lateral = false; - n->ordinality = (yyvsp[(2) - (2)].boolean); - n->is_rowsfrom = false; - n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL)); - n->sample = NULL; - /* alias and coldeflist are set by table_ref production */ - (yyval.node) = (PGNode *) n; - ;} +#line 3347 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 713: -#line 1066 "third_party/libpg_query/grammar/statements/select.y" +#line 3350 "third_party/libpg_query/grammar/statements/select.y" { - PGRangeFunction *n = makeNode(PGRangeFunction); - n->lateral = false; - n->ordinality = (yyvsp[(6) - (6)].boolean); - n->is_rowsfrom = true; - n->functions = (yyvsp[(4) - (6)].list); - n->sample = NULL; - /* alias and coldeflist are set by table_ref production */ - (yyval.node) = (PGNode *) n; - ;} + (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), + yyscanner); + ;} break; case 714: -#line 1079 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} +#line 3361 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); + ;} break; case 715: -#line 1083 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} +#line 3365 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + ;} break; case 716: -#line 1084 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} +#line 3369 "third_party/libpg_query/grammar/statements/select.y" + { + if ((yyvsp[(2) - (2)].list)) + { + PGAIndirection *n = makeNode(PGAIndirection); + n->arg = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)])); + n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.node) = (PGNode *) n; + } + else + (yyval.node) = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)])); + ;} break; case 717: -#line 1087 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 3381 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + ;} break; case 718: -#line 1088 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3385 "third_party/libpg_query/grammar/statements/select.y" + { + /* This is a bit constant per SQL99: + * Without Feature F511, "BIT data type", + * a shall not be a + * or a . + */ + (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + ;} break; case 719: -#line 1091 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} +#line 3394 "third_party/libpg_query/grammar/statements/select.y" + { + /* generic type 'literal' syntax */ + PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); + t->location = (yylsp[(1) - (2)]); + (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t); + ;} break; case 720: -#line 1092 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} +#line 3401 "third_party/libpg_query/grammar/statements/select.y" + { + /* generic syntax with a type modifier */ + PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (7)].list)); + PGListCell *lc; + + /* + * We must use func_arg_list and opt_sort_clause in the + * production to avoid reduce/reduce conflicts, but we + * don't actually wish to allow PGNamedArgExpr in this + * context, ORDER BY, nor IGNORE NULLS. + */ + foreach(lc, (yyvsp[(3) - (7)].list)) + { + PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc); + + if (IsA(arg, PGNamedArgExpr)) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have parameter name"), + parser_errposition(arg->location))); + } + if ((yyvsp[(4) - (7)].list) != NIL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have ORDER BY"), + parser_errposition((yylsp[(4) - (7)])))); + if ((yyvsp[(5) - (7)].boolean) != false) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("type modifier cannot have IGNORE NULLS"), + parser_errposition((yylsp[(5) - (7)])))); + + + t->typmods = (yyvsp[(3) - (7)].list); + t->location = (yylsp[(1) - (7)]); + (yyval.node) = makeStringConstCast((yyvsp[(7) - (7)].str), (yylsp[(7) - (7)]), t); + ;} break; case 721: -#line 1097 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 3439 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); + ;} break; case 722: -#line 1098 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3443 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeIntervalNode((yyvsp[(3) - (5)].node), (yylsp[(3) - (5)]), (yyvsp[(5) - (5)].list)); + ;} break; case 723: -#line 1104 "third_party/libpg_query/grammar/statements/select.y" +#line 3447 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); + (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); ;} break; case 724: -#line 1108 "third_party/libpg_query/grammar/statements/select.y" +#line 3451 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); + (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); ;} break; case 725: -#line 1114 "third_party/libpg_query/grammar/statements/select.y" +#line 3455 "third_party/libpg_query/grammar/statements/select.y" { - PGColumnDef *n = makeNode(PGColumnDef); - n->colname = (yyvsp[(1) - (3)].str); - n->typeName = (yyvsp[(2) - (3)].typnam); - n->inhcount = 0; - n->is_local = true; - n->is_not_null = false; - n->is_from_type = false; - n->storage = 0; - n->raw_default = NULL; - n->cooked_default = NULL; - n->collClause = (PGCollateClause *) (yyvsp[(3) - (3)].node); - n->collOid = InvalidOid; - n->constraints = NIL; - n->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *)n; + (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); ;} break; case 726: -#line 1135 "third_party/libpg_query/grammar/statements/select.y" +#line 3459 "third_party/libpg_query/grammar/statements/select.y" { - PGCollateClause *n = makeNode(PGCollateClause); - n->arg = NULL; - n->collname = (yyvsp[(2) - (2)].list); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *) n; + (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); ;} break; case 727: -#line 1142 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 3463 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); + ;} break; case 728: -#line 1155 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam))); - ;} +#line 3468 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 729: -#line 1158 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = lappend((yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam))); - ;} +#line 3469 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + break; + + case 730: +#line 3485 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + break; + + case 731: +#line 3486 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 732: -#line 1165 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (2)].typnam); - (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); - ;} +#line 3487 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 733: -#line 1170 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (3)].typnam); - (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); - (yyval.typnam)->setof = true; - ;} +#line 3490 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 734: -#line 1177 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (5)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); - ;} + case 734: +#line 3491 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 735: -#line 1182 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (6)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); - (yyval.typnam)->setof = true; - ;} +#line 3497 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 736: -#line 1188 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (2)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); - ;} +#line 3498 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 737: -#line 1193 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(2) - (3)].typnam); - (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); - (yyval.typnam)->setof = true; - ;} +#line 3499 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 738: -#line 1198 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("struct"); - (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); - (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 3502 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 739: -#line 1204 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("map"); - (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); - (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list); - (yyval.typnam)->location = (yylsp[(1) - (5)]); - ;} +#line 3503 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 740: -#line 1214 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} +#line 3504 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 741: -#line 1216 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} +#line 3507 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 742: -#line 1218 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 3508 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 743: -#line 1222 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 3509 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 744: -#line 1223 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 3512 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 745: -#line 1224 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 3513 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 746: -#line 1225 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 3517 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} break; case 747: -#line 1226 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} +#line 3519 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 748: -#line 1228 "third_party/libpg_query/grammar/statements/select.y" +#line 3523 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + break; + + case 749: +#line 3524 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NIL; ;} + break; + + case 751: +#line 3535 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + break; + + case 752: +#line 3536 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} + break; + + case 753: +#line 3537 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} + break; + + case 754: +#line 3538 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} + break; + + case 755: +#line 3541 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + break; + + case 756: +#line 3542 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + break; + + case 757: +#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y" { - (yyval.typnam) = (yyvsp[(1) - (2)].typnam); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_TABLE; + n->relation = (yyvsp[(3) - (6)].range); + n->newschema = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 749: -#line 1233 "third_party/libpg_query/grammar/statements/select.y" + case 758: +#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y" { - (yyval.typnam) = (yyvsp[(1) - (4)].typnam); - (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), - makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_TABLE; + n->relation = (yyvsp[(5) - (8)].range); + n->newschema = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 750: -#line 1252 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + case 759: +#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[(3) - (6)].range); + n->newschema = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + ;} break; - case 751: -#line 1253 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + case 760: +#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[(5) - (8)].range); + n->newschema = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + ;} break; - case 752: -#line 1254 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + case 761: +#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_VIEW; + n->relation = (yyvsp[(3) - (6)].range); + n->newschema = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + ;} break; - case 753: -#line 1255 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} + case 762: +#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y" + { + PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); + n->objectType = PG_OBJECT_VIEW; + n->relation = (yyvsp[(5) - (8)].range); + n->newschema = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + ;} break; - case 754: -#line 1267 "third_party/libpg_query/grammar/statements/select.y" + case 763: +#line 8 "third_party/libpg_query/grammar/statements/export.y" { - (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGExportStmt *n = makeNode(PGExportStmt); + n->filename = (yyvsp[(3) - (4)].str); + n->options = NIL; + if ((yyvsp[(4) - (4)].list)) { + n->options = list_concat(n->options, (yyvsp[(4) - (4)].list)); + } + (yyval.node) = (PGNode *)n; ;} break; - case 755: -#line 1280 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} + case 764: +#line 21 "third_party/libpg_query/grammar/statements/export.y" + { + PGImportStmt *n = makeNode(PGImportStmt); + n->filename = (yyvsp[(3) - (3)].str); + (yyval.node) = (PGNode *)n; + ;} + break; + + case 765: +#line 11 "third_party/libpg_query/grammar/statements/index.y" + { + PGIndexStmt *n = makeNode(PGIndexStmt); + n->unique = (yyvsp[(2) - (13)].boolean); + n->concurrent = (yyvsp[(4) - (13)].boolean); + n->idxname = (yyvsp[(5) - (13)].str); + n->relation = (yyvsp[(7) - (13)].range); + n->accessMethod = (yyvsp[(8) - (13)].str); + n->indexParams = (yyvsp[(10) - (13)].list); + n->options = (yyvsp[(12) - (13)].list); + n->whereClause = (yyvsp[(13) - (13)].node); + n->excludeOpNames = NIL; + n->idxcomment = NULL; + n->indexOid = InvalidOid; + n->oldNode = InvalidOid; + n->primary = false; + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->transformed = false; + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + ;} + break; + + case 766: +#line 36 "third_party/libpg_query/grammar/statements/index.y" + { + PGIndexStmt *n = makeNode(PGIndexStmt); + n->unique = (yyvsp[(2) - (16)].boolean); + n->concurrent = (yyvsp[(4) - (16)].boolean); + n->idxname = (yyvsp[(8) - (16)].str); + n->relation = (yyvsp[(10) - (16)].range); + n->accessMethod = (yyvsp[(11) - (16)].str); + n->indexParams = (yyvsp[(13) - (16)].list); + n->options = (yyvsp[(15) - (16)].list); + n->whereClause = (yyvsp[(16) - (16)].node); + n->excludeOpNames = NIL; + n->idxcomment = NULL; + n->indexOid = InvalidOid; + n->oldNode = InvalidOid; + n->primary = false; + n->isconstraint = false; + n->deferrable = false; + n->initdeferred = false; + n->transformed = false; + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + ;} + break; + + case 767: +#line 62 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} + break; + + case 768: +#line 66 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (yyvsp[(2) - (2)].str); ;} + break; + + case 769: +#line 67 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;} + break; + + case 770: +#line 72 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = true; ;} + break; + + case 771: +#line 73 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = false; ;} break; - case 756: -#line 1281 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} + case 772: +#line 78 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 757: -#line 1288 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int4"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} + case 773: +#line 79 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.str) = NULL; ;} break; - case 758: -#line 1293 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int4"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} + case 774: +#line 83 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 759: -#line 1298 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int2"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} + case 775: +#line 84 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.list) = NIL; ;} break; - case 760: -#line 1303 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("int8"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} + case 776: +#line 89 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = true; ;} break; - case 761: -#line 1308 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("float4"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} + case 777: +#line 90 "third_party/libpg_query/grammar/statements/index.y" + { (yyval.boolean) = false; ;} break; - case 762: -#line 1313 "third_party/libpg_query/grammar/statements/select.y" + case 778: +#line 3 "third_party/libpg_query/grammar/statements/transaction.y" { - (yyval.typnam) = (yyvsp[(2) - (2)].typnam); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_ROLLBACK; + n->options = NIL; + (yyval.node) = (PGNode *)n; ;} break; - case 763: -#line 1318 "third_party/libpg_query/grammar/statements/select.y" + case 779: +#line 10 "third_party/libpg_query/grammar/statements/transaction.y" { - (yyval.typnam) = SystemTypeName("float8"); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_BEGIN; + (yyval.node) = (PGNode *)n; ;} break; - case 764: -#line 1323 "third_party/libpg_query/grammar/statements/select.y" + case 780: +#line 16 "third_party/libpg_query/grammar/statements/transaction.y" { - (yyval.typnam) = SystemTypeName("numeric"); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_START; + (yyval.node) = (PGNode *)n; ;} break; - case 765: -#line 1329 "third_party/libpg_query/grammar/statements/select.y" + case 781: +#line 22 "third_party/libpg_query/grammar/statements/transaction.y" { - (yyval.typnam) = SystemTypeName("numeric"); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_COMMIT; + n->options = NIL; + (yyval.node) = (PGNode *)n; ;} break; - case 766: -#line 1335 "third_party/libpg_query/grammar/statements/select.y" + case 782: +#line 29 "third_party/libpg_query/grammar/statements/transaction.y" { - (yyval.typnam) = SystemTypeName("numeric"); - (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_COMMIT; + n->options = NIL; + (yyval.node) = (PGNode *)n; ;} break; - case 767: -#line 1341 "third_party/libpg_query/grammar/statements/select.y" + case 783: +#line 36 "third_party/libpg_query/grammar/statements/transaction.y" { - (yyval.typnam) = SystemTypeName("bool"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); + PGTransactionStmt *n = makeNode(PGTransactionStmt); + n->kind = PG_TRANS_STMT_ROLLBACK; + n->options = NIL; + (yyval.node) = (PGNode *)n; ;} break; - case 768: -#line 1348 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * Check FLOAT() precision limits assuming IEEE floating - * types - thomas 1997-09-18 - */ - if ((yyvsp[(2) - (3)].ival) < 1) - ereport(ERROR, - (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("precision for type float must be at least 1 bit"), - parser_errposition((yylsp[(2) - (3)])))); - else if ((yyvsp[(2) - (3)].ival) <= 24) - (yyval.typnam) = SystemTypeName("float4"); - else if ((yyvsp[(2) - (3)].ival) <= 53) - (yyval.typnam) = SystemTypeName("float8"); - else - ereport(ERROR, - (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("precision for type float must be less than 54 bits"), - parser_errposition((yylsp[(2) - (3)])))); - ;} + case 784: +#line 45 "third_party/libpg_query/grammar/statements/transaction.y" + {;} break; - case 769: -#line 1369 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName("float4"); - ;} + case 785: +#line 46 "third_party/libpg_query/grammar/statements/transaction.y" + {;} break; - case 770: -#line 1379 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - ;} + case 786: +#line 47 "third_party/libpg_query/grammar/statements/transaction.y" + {;} break; - case 771: -#line 1383 "third_party/libpg_query/grammar/statements/select.y" + case 787: +#line 12 "third_party/libpg_query/grammar/statements/update.y" { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + PGUpdateStmt *n = makeNode(PGUpdateStmt); + n->relation = (yyvsp[(3) - (8)].range); + n->targetList = (yyvsp[(5) - (8)].list); + n->fromClause = (yyvsp[(6) - (8)].list); + n->whereClause = (yyvsp[(7) - (8)].node); + n->returningList = (yyvsp[(8) - (8)].list); + n->withClause = (yyvsp[(1) - (8)].with); + (yyval.node) = (PGNode *)n; ;} break; - case 772: -#line 1391 "third_party/libpg_query/grammar/statements/select.y" + case 788: +#line 10 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(3) - (4)].range); + n->cmds = (yyvsp[(4) - (4)].list); + n->relkind = PG_OBJECT_TABLE; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 773: -#line 1395 "third_party/libpg_query/grammar/statements/select.y" + case 789: +#line 19 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - (yyval.typnam)->typmods = NIL; + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(5) - (6)].range); + n->cmds = (yyvsp[(6) - (6)].list); + n->relkind = PG_OBJECT_TABLE; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 774: -#line 1403 "third_party/libpg_query/grammar/statements/select.y" + case 790: +#line 28 "third_party/libpg_query/grammar/statements/alter_table.y" { - const char *typname; - - typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit"; - (yyval.typnam) = SystemTypeName(typname); - (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list); - (yyval.typnam)->location = (yylsp[(1) - (5)]); + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(3) - (4)].range); + n->cmds = (yyvsp[(4) - (4)].list); + n->relkind = PG_OBJECT_INDEX; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 775: -#line 1415 "third_party/libpg_query/grammar/statements/select.y" + case 791: +#line 37 "third_party/libpg_query/grammar/statements/alter_table.y" { - /* bit defaults to bit(1), varbit to no limit */ - if ((yyvsp[(2) - (2)].boolean)) - { - (yyval.typnam) = SystemTypeName("varbit"); - } - else - { - (yyval.typnam) = SystemTypeName("bit"); - (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); - } - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(5) - (6)].range); + n->cmds = (yyvsp[(6) - (6)].list); + n->relkind = PG_OBJECT_INDEX; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 776: -#line 1436 "third_party/libpg_query/grammar/statements/select.y" + case 792: +#line 46 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(3) - (4)].range); + n->cmds = (yyvsp[(4) - (4)].list); + n->relkind = PG_OBJECT_SEQUENCE; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 777: -#line 1440 "third_party/libpg_query/grammar/statements/select.y" + case 793: +#line 55 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(5) - (6)].range); + n->cmds = (yyvsp[(6) - (6)].list); + n->relkind = PG_OBJECT_SEQUENCE; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 778: -#line 1446 "third_party/libpg_query/grammar/statements/select.y" + case 794: +#line 64 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(3) - (4)].range); + n->cmds = (yyvsp[(4) - (4)].list); + n->relkind = PG_OBJECT_VIEW; + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 779: -#line 1450 "third_party/libpg_query/grammar/statements/select.y" + case 795: +#line 73 "third_party/libpg_query/grammar/statements/alter_table.y" { - /* Length was not specified so allow to be unrestricted. - * This handles problems with fixed-length (bpchar) strings - * which in column definitions must default to a length - * of one, but should not be constrained if the length - * was not specified. - */ - (yyval.typnam) = (yyvsp[(1) - (1)].typnam); - (yyval.typnam)->typmods = NIL; + PGAlterTableStmt *n = makeNode(PGAlterTableStmt); + n->relation = (yyvsp[(5) - (6)].range); + n->cmds = (yyvsp[(6) - (6)].list); + n->relkind = PG_OBJECT_VIEW; + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 780: -#line 1463 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr)); - (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); - (yyval.typnam)->location = (yylsp[(1) - (4)]); - ;} + case 796: +#line 86 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; - case 781: -#line 1471 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr)); - /* char defaults to char(1), varchar to no limit */ - if (strcmp((yyvsp[(1) - (1)].conststr), "bpchar") == 0) - (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); - (yyval.typnam)->location = (yylsp[(1) - (1)]); - ;} + case 797: +#line 88 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; - case 782: -#line 1481 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} + case 798: +#line 93 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; - case 783: -#line 1483 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} + case 799: +#line 94 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = NULL; ;} break; - case 784: -#line 1485 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "varchar"; ;} + case 800: +#line 100 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); + ;} break; - case 785: -#line 1487 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} + case 801: +#line 104 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); + ;} break; - case 786: -#line 1489 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} + case 802: +#line 108 "third_party/libpg_query/grammar/statements/alter_table.y" + { + if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 || + strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 || + strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname), + parser_errposition((yylsp[(2) - (2)])))); + (yyval.defelt) = (yyvsp[(2) - (2)].defelt); + ;} break; - case 787: -#line 1491 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} + case 803: +#line 119 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); + ;} break; - case 788: -#line 1495 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} + case 804: +#line 127 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); + ;} break; - case 789: -#line 1496 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} + case 805: +#line 131 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); + ;} break; - case 790: -#line 1504 "third_party/libpg_query/grammar/statements/select.y" + case 806: +#line 140 "third_party/libpg_query/grammar/statements/alter_table.y" { - if ((yyvsp[(5) - (5)].boolean)) - (yyval.typnam) = SystemTypeName("timestamptz"); - else - (yyval.typnam) = SystemTypeName("timestamp"); - (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); - (yyval.typnam)->location = (yylsp[(1) - (5)]); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[(2) - (2)].node); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 791: -#line 1513 "third_party/libpg_query/grammar/statements/select.y" + case 807: +#line 149 "third_party/libpg_query/grammar/statements/alter_table.y" { - if ((yyvsp[(2) - (2)].boolean)) - (yyval.typnam) = SystemTypeName("timestamptz"); - else - (yyval.typnam) = SystemTypeName("timestamp"); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[(5) - (5)].node); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 792: -#line 1521 "third_party/libpg_query/grammar/statements/select.y" + case 808: +#line 158 "third_party/libpg_query/grammar/statements/alter_table.y" { - if ((yyvsp[(5) - (5)].boolean)) - (yyval.typnam) = SystemTypeName("timetz"); - else - (yyval.typnam) = SystemTypeName("time"); - (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); - (yyval.typnam)->location = (yylsp[(1) - (5)]); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[(3) - (3)].node); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; - case 793: -#line 1530 "third_party/libpg_query/grammar/statements/select.y" + case 809: +#line 167 "third_party/libpg_query/grammar/statements/alter_table.y" { - if ((yyvsp[(2) - (2)].boolean)) - (yyval.typnam) = SystemTypeName("timetz"); - else - (yyval.typnam) = SystemTypeName("time"); - (yyval.typnam)->location = (yylsp[(1) - (2)]); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddColumn; + n->def = (yyvsp[(6) - (6)].node); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; - case 794: -#line 1541 "third_party/libpg_query/grammar/statements/select.y" + case 810: +#line 176 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.typnam) = SystemTypeName("interval"); - (yyval.typnam)->location = (yylsp[(1) - (1)]); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ColumnDefault; + n->name = (yyvsp[(3) - (4)].str); + n->def = (yyvsp[(4) - (4)].node); + (yyval.node) = (PGNode *)n; ;} break; - case 795: -#line 1548 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = true; ;} + case 811: +#line 185 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropNotNull; + n->name = (yyvsp[(3) - (6)].str); + (yyval.node) = (PGNode *)n; + ;} break; - case 796: -#line 1549 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} + case 812: +#line 193 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetNotNull; + n->name = (yyvsp[(3) - (6)].str); + (yyval.node) = (PGNode *)n; + ;} break; - case 797: -#line 1550 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.boolean) = false; ;} + case 813: +#line 201 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetStatistics; + n->name = (yyvsp[(3) - (6)].str); + n->def = (PGNode *) makeInteger((yyvsp[(6) - (6)].ival)); + (yyval.node) = (PGNode *)n; + ;} break; case 814: -#line 1579 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} +#line 210 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetOptions; + n->name = (yyvsp[(3) - (5)].str); + n->def = (PGNode *) (yyvsp[(5) - (5)].list); + (yyval.node) = (PGNode *)n; + ;} break; case 815: -#line 1581 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} +#line 219 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ResetOptions; + n->name = (yyvsp[(3) - (5)].str); + n->def = (PGNode *) (yyvsp[(5) - (5)].list); + (yyval.node) = (PGNode *)n; + ;} break; case 816: -#line 1583 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} +#line 228 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetStorage; + n->name = (yyvsp[(3) - (6)].str); + n->def = (PGNode *) makeString((yyvsp[(6) - (6)].str)); + (yyval.node) = (PGNode *)n; + ;} break; case 817: -#line 1585 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} +#line 237 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + PGConstraint *c = makeNode(PGConstraint); + + c->contype = PG_CONSTR_IDENTITY; + c->generated_when = (yyvsp[(6) - (9)].ival); + c->options = (yyvsp[(9) - (9)].list); + c->location = (yylsp[(5) - (9)]); + + n->subtype = PG_AT_AddIdentity; + n->name = (yyvsp[(3) - (9)].str); + n->def = (PGNode *) c; + + (yyval.node) = (PGNode *)n; + ;} break; case 818: -#line 1587 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} +#line 254 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetIdentity; + n->name = (yyvsp[(3) - (4)].str); + n->def = (PGNode *) (yyvsp[(4) - (4)].list); + (yyval.node) = (PGNode *)n; + ;} break; case 819: -#line 1589 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} +#line 263 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = AT_DropIdentity; + n->name = (yyvsp[(3) - (5)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + ;} break; case 820: -#line 1591 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;} +#line 272 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = AT_DropIdentity; + n->name = (yyvsp[(3) - (7)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + ;} break; case 821: -#line 1593 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;} +#line 281 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropColumn; + n->name = (yyvsp[(5) - (6)].str); + n->behavior = (yyvsp[(6) - (6)].dbehavior); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + ;} break; case 822: -#line 1595 "third_party/libpg_query/grammar/statements/select.y" +#line 291 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | - INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropColumn; + n->name = (yyvsp[(3) - (4)].str); + n->behavior = (yyvsp[(4) - (4)].dbehavior); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 823: -#line 1600 "third_party/libpg_query/grammar/statements/select.y" +#line 304 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | - INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + PGColumnDef *def = makeNode(PGColumnDef); + n->subtype = PG_AT_AlterColumnType; + n->name = (yyvsp[(3) - (8)].str); + n->def = (PGNode *) def; + /* We only use these fields of the PGColumnDef node */ + def->typeName = (yyvsp[(6) - (8)].typnam); + def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node); + def->raw_default = (yyvsp[(8) - (8)].node); + def->location = (yylsp[(3) - (8)]); + (yyval.node) = (PGNode *)n; ;} break; case 824: -#line 1605 "third_party/libpg_query/grammar/statements/select.y" +#line 319 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | - INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AlterColumnGenericOptions; + n->name = (yyvsp[(3) - (4)].str); + n->def = (PGNode *) (yyvsp[(4) - (4)].list); + (yyval.node) = (PGNode *)n; ;} break; case 825: -#line 1611 "third_party/libpg_query/grammar/statements/select.y" +#line 328 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | - INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE) | - INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_AddConstraint; + n->def = (yyvsp[(2) - (2)].node); + (yyval.node) = (PGNode *)n; ;} break; case 826: -#line 1618 "third_party/libpg_query/grammar/statements/select.y" +#line 336 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + PGConstraint *c = makeNode(PGConstraint); + n->subtype = PG_AT_AlterConstraint; + n->def = (PGNode *) c; + c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */ + c->conname = (yyvsp[(3) - (4)].str); + processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "ALTER CONSTRAINT statement", + &c->deferrable, + &c->initdeferred, + NULL, NULL, yyscanner); + (yyval.node) = (PGNode *)n; ;} break; case 827: -#line 1623 "third_party/libpg_query/grammar/statements/select.y" +#line 351 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | - INTERVAL_MASK(MINUTE) | - INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ValidateConstraint; + n->name = (yyvsp[(3) - (3)].str); + (yyval.node) = (PGNode *)n; ;} break; case 828: -#line 1629 "third_party/libpg_query/grammar/statements/select.y" +#line 359 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) | - INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropConstraint; + n->name = (yyvsp[(5) - (6)].str); + n->behavior = (yyvsp[(6) - (6)].dbehavior); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; case 829: -#line 1634 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 369 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_DropConstraint; + n->name = (yyvsp[(3) - (4)].str); + n->behavior = (yyvsp[(4) - (4)].dbehavior); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + ;} break; case 830: -#line 1665 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 379 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetLogged; + (yyval.node) = (PGNode *)n; + ;} break; case 831: -#line 1668 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} +#line 386 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetUnLogged; + (yyval.node) = (PGNode *)n; + ;} break; case 832: -#line 1670 "third_party/libpg_query/grammar/statements/select.y" +#line 393 "third_party/libpg_query/grammar/statements/alter_table.y" { - PGCollateClause *n = makeNode(PGCollateClause); - n->arg = (yyvsp[(1) - (3)].node); - n->collname = (yyvsp[(3) - (3)].list); - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *) n; + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_SetRelOptions; + n->def = (PGNode *)(yyvsp[(2) - (2)].list); + (yyval.node) = (PGNode *)n; ;} break; case 833: -#line 1678 "third_party/libpg_query/grammar/statements/select.y" +#line 401 "third_party/libpg_query/grammar/statements/alter_table.y" { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"), - list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), - (yylsp[(2) - (5)])); + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_ResetRelOptions; + n->def = (PGNode *)(yyvsp[(2) - (2)].list); + (yyval.node) = (PGNode *)n; ;} break; case 834: -#line 1693 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 408 "third_party/libpg_query/grammar/statements/alter_table.y" + { + PGAlterTableCmd *n = makeNode(PGAlterTableCmd); + n->subtype = PG_AT_GenericOptions; + n->def = (PGNode *)(yyvsp[(1) - (1)].list); + (yyval.node) = (PGNode *) n; + ;} break; case 835: -#line 1695 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 418 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 836: -#line 1697 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 419 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.node) = NULL; ;} break; case 837: -#line 1699 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 425 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = (yyvsp[(1) - (1)].defelt); + ;} break; case 838: -#line 1701 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 429 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = (yyvsp[(2) - (2)].defelt); + (yyval.defelt)->defaction = PG_DEFELEM_SET; + ;} break; case 839: -#line 1703 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 434 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = (yyvsp[(2) - (2)].defelt); + (yyval.defelt)->defaction = PG_DEFELEM_ADD; + ;} break; case 840: -#line 1705 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 439 "third_party/libpg_query/grammar/statements/alter_table.y" + { + (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); + ;} break; case 841: -#line 1707 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 446 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 842: -#line 1709 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 447 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 843: -#line 1711 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 452 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 844: -#line 1713 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 456 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.ival) = 1; ;} break; case 845: -#line 1715 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 457 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.ival) = 0; ;} break; case 846: -#line 1717 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 458 "third_party/libpg_query/grammar/statements/alter_table.y" + { (yyval.ival) = 0; ;} break; case 847: -#line 1719 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} - break; - - case 848: -#line 1722 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} - break; - - case 849: -#line 1724 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 8 "third_party/libpg_query/grammar/statements/create_function.y" + { + PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt); + n->name = (yyvsp[(3) - (6)].range); + n->params = (yyvsp[(4) - (6)].list); + n->function = (yyvsp[(6) - (6)].node); + (yyval.node) = (PGNode *)n; + ;} break; case 850: -#line 1726 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} +#line 24 "third_party/libpg_query/grammar/statements/create_function.y" + { + (yyval.list) = NIL; + ;} break; case 851: -#line 1729 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 28 "third_party/libpg_query/grammar/statements/create_function.y" + { + (yyval.list) = (yyvsp[(2) - (3)].list); + ;} break; case 852: -#line 1731 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 9 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM; + if ((yyvsp[(2) - (4)].boolean)) + n->options |= PG_VACOPT_FULL; + if ((yyvsp[(3) - (4)].boolean)) + n->options |= PG_VACOPT_FREEZE; + if ((yyvsp[(4) - (4)].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = NULL; + n->va_cols = NIL; + (yyval.node) = (PGNode *)n; + ;} break; case 853: -#line 1733 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 23 "third_party/libpg_query/grammar/statements/vacuum.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM; + if ((yyvsp[(2) - (5)].boolean)) + n->options |= PG_VACOPT_FULL; + if ((yyvsp[(3) - (5)].boolean)) + n->options |= PG_VACOPT_FREEZE; + if ((yyvsp[(4) - (5)].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = (yyvsp[(5) - (5)].range); + n->va_cols = NIL; + (yyval.node) = (PGNode *)n; + ;} break; case 854: -#line 1735 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} - break; - - case 855: -#line 1738 "third_party/libpg_query/grammar/statements/select.y" +#line 37 "third_party/libpg_query/grammar/statements/vacuum.y" { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~", - (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); + PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node); + n->options |= PG_VACOPT_VACUUM; + if ((yyvsp[(2) - (5)].boolean)) + n->options |= PG_VACOPT_FULL; + if ((yyvsp[(3) - (5)].boolean)) + n->options |= PG_VACOPT_FREEZE; + if ((yyvsp[(4) - (5)].boolean)) + n->options |= PG_VACOPT_VERBOSE; + (yyval.node) = (PGNode *)n; ;} break; - case 856: -#line 1743 "third_party/libpg_query/grammar/statements/select.y" + case 855: +#line 49 "third_party/libpg_query/grammar/statements/vacuum.y" { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~", - (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival); + n->relation = NULL; + n->va_cols = NIL; + (yyval.node) = (PGNode *) n; ;} break; - case 857: -#line 1748 "third_party/libpg_query/grammar/statements/select.y" + case 856: +#line 57 "third_party/libpg_query/grammar/statements/vacuum.y" { - PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), - list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), - (yylsp[(2) - (5)])); + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival); + n->relation = (yyvsp[(5) - (6)].range); + n->va_cols = (yyvsp[(6) - (6)].list); + if (n->va_cols != NIL) /* implies analyze */ + n->options |= PG_VACOPT_ANALYZE; (yyval.node) = (PGNode *) n; ;} break; + case 857: +#line 70 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_ANALYZE; ;} + break; + case 858: -#line 1755 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~", - (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); - ;} +#line 71 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_VERBOSE; ;} break; case 859: -#line 1760 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), - list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - (yyval.node) = (PGNode *) n; - ;} +#line 72 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_FREEZE; ;} break; case 860: -#line 1767 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", - (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - ;} +#line 73 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = PG_VACOPT_FULL; ;} break; case 861: -#line 1772 "third_party/libpg_query/grammar/statements/select.y" +#line 75 "third_party/libpg_query/grammar/statements/vacuum.y" { - PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), - list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), - (yylsp[(2) - (5)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", - (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)])); + if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0) + (yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING; + else + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)), + parser_errposition((yylsp[(1) - (1)])))); ;} break; case 862: -#line 1780 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", - (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); - ;} +#line 87 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = true; ;} break; case 863: -#line 1785 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), - list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", - (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)])); - ;} +#line 88 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = false; ;} break; case 864: -#line 1794 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)), - (yylsp[(2) - (4)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", - (yyvsp[(1) - (4)].node), (PGNode *) n, (yylsp[(2) - (4)])); - ;} +#line 93 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 865: -#line 1802 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~", - (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)])); - ;} +#line 94 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 866: -#line 1810 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)), - (yylsp[(2) - (5)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", - (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)])); - ;} +#line 98 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = true; ;} break; case 867: -#line 1818 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), - list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), - (yylsp[(2) - (7)])); - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~", - (yyvsp[(1) - (7)].node), (PGNode *) n, (yylsp[(2) - (7)])); - ;} +#line 99 "third_party/libpg_query/grammar/statements/vacuum.y" + { (yyval.boolean) = false; ;} break; case 868: -#line 1836 "third_party/libpg_query/grammar/statements/select.y" +#line 8 "third_party/libpg_query/grammar/statements/pragma.y" { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - n->nulltesttype = PG_IS_NULL; - n->location = (yylsp[(2) - (3)]); + PGPragmaStmt *n = makeNode(PGPragmaStmt); + n->kind = PG_PRAGMA_TYPE_NOTHING; + n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (PGNode *)n; ;} break; case 869: -#line 1844 "third_party/libpg_query/grammar/statements/select.y" +#line 15 "third_party/libpg_query/grammar/statements/pragma.y" { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); - n->nulltesttype = PG_IS_NULL; - n->location = (yylsp[(2) - (2)]); + PGPragmaStmt *n = makeNode(PGPragmaStmt); + n->kind = PG_PRAGMA_TYPE_ASSIGNMENT; + n->name = (yyvsp[(2) - (4)].str); + n->args = (yyvsp[(4) - (4)].list); (yyval.node) = (PGNode *)n; ;} break; case 870: -#line 1852 "third_party/libpg_query/grammar/statements/select.y" +#line 23 "third_party/libpg_query/grammar/statements/pragma.y" { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - n->nulltesttype = IS_NOT_NULL; - n->location = (yylsp[(2) - (4)]); + PGPragmaStmt *n = makeNode(PGPragmaStmt); + n->kind = PG_PRAGMA_TYPE_CALL; + n->name = (yyvsp[(2) - (5)].str); + n->args = (yyvsp[(4) - (5)].list); (yyval.node) = (PGNode *)n; ;} break; case 871: -#line 1860 "third_party/libpg_query/grammar/statements/select.y" +#line 8 "third_party/libpg_query/grammar/statements/create_enum.y" { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - n->nulltesttype = IS_NOT_NULL; - n->location = (yylsp[(2) - (3)]); + PGCreateEnumStmt *n = makeNode(PGCreateEnumStmt); + n->typeName = (yyvsp[(3) - (8)].list); + n->vals = (yyvsp[(7) - (8)].list); (yyval.node) = (PGNode *)n; ;} break; case 872: -#line 1868 "third_party/libpg_query/grammar/statements/select.y" - { - PGNullTest *n = makeNode(PGNullTest); - n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); - n->nulltesttype = IS_NOT_NULL; - n->location = (yylsp[(2) - (2)]); - (yyval.node) = (PGNode *)n; - ;} +#line 17 "third_party/libpg_query/grammar/statements/create_enum.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 873: -#line 1875 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)])); - (yyval.node) = (PGNode *) n; - ;} +#line 18 "third_party/libpg_query/grammar/statements/create_enum.y" + { (yyval.list) = NIL; ;} break; case 874: -#line 1879 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); - (yyval.node) = (PGNode *) n; - ;} +#line 22 "third_party/libpg_query/grammar/statements/create_enum.y" + { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 875: -#line 1883 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); - (yyval.node) = (PGNode *) n; - ;} +#line 24 "third_party/libpg_query/grammar/statements/create_enum.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 876: -#line 1888 "third_party/libpg_query/grammar/statements/select.y" +#line 3 "third_party/libpg_query/grammar/statements/copy.y" { - PGLambdaFunction *n = makeNode(PGLambdaFunction); - n->parameters = (yyvsp[(1) - (3)].list); - n->function = (yyvsp[(3) - (3)].node); - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *) n; - ;} + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = (yyvsp[(3) - (11)].range); + n->query = NULL; + n->attlist = (yyvsp[(4) - (11)].list); + n->is_from = (yyvsp[(6) - (11)].boolean); + n->is_program = (yyvsp[(7) - (11)].boolean); + n->filename = (yyvsp[(8) - (11)].str); + + if (n->is_program && n->filename == NULL) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("STDIN/STDOUT not allowed with PROGRAM"), + parser_errposition((yylsp[(8) - (11)])))); + + n->options = NIL; + /* Concatenate user-supplied flags */ + if ((yyvsp[(2) - (11)].defelt)) + n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt)); + if ((yyvsp[(5) - (11)].defelt)) + n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt)); + if ((yyvsp[(9) - (11)].defelt)) + n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt)); + if ((yyvsp[(11) - (11)].list)) + n->options = list_concat(n->options, (yyvsp[(11) - (11)].list)); + (yyval.node) = (PGNode *)n; + ;} break; case 877: -#line 1896 "third_party/libpg_query/grammar/statements/select.y" +#line 31 "third_party/libpg_query/grammar/statements/copy.y" { - PGLambdaFunction *n = makeNode(PGLambdaFunction); - n->parameters = list_make1((yyvsp[(1) - (3)].node)); - n->function = (yyvsp[(3) - (3)].node); - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *) n; - ;} - break; + PGCopyStmt *n = makeNode(PGCopyStmt); + n->relation = NULL; + n->query = (yyvsp[(3) - (9)].node); + n->attlist = NIL; + n->is_from = false; + n->is_program = (yyvsp[(6) - (9)].boolean); + n->filename = (yyvsp[(7) - (9)].str); + n->options = (yyvsp[(9) - (9)].list); - case 878: -#line 1904 "third_party/libpg_query/grammar/statements/select.y" - { - if (list_length((yyvsp[(1) - (3)].list)) != 2) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("wrong number of parameters on left side of OVERLAPS expression"), - parser_errposition((yylsp[(1) - (3)])))); - if (list_length((yyvsp[(3) - (3)].list)) != 2) + if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("wrong number of parameters on right side of OVERLAPS expression"), - parser_errposition((yylsp[(3) - (3)])))); - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"), - list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)), - (yylsp[(2) - (3)])); + errmsg("STDIN/STDOUT not allowed with PROGRAM"), + parser_errposition((yylsp[(5) - (9)])))); + + (yyval.node) = (PGNode *)n; ;} break; + case 878: +#line 53 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = true; ;} + break; + case 879: -#line 1920 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - b->booltesttype = PG_IS_TRUE; - b->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)b; - ;} +#line 54 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = false; ;} break; case 880: -#line 1928 "third_party/libpg_query/grammar/statements/select.y" +#line 60 "third_party/libpg_query/grammar/statements/copy.y" { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - b->booltesttype = IS_NOT_TRUE; - b->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)b; + (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)])); ;} break; case 881: -#line 1936 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - b->booltesttype = IS_FALSE; - b->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)b; - ;} +#line 63 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.defelt) = NULL; ;} break; case 882: -#line 1944 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - b->booltesttype = IS_NOT_FALSE; - b->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)b; +#line 69 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 883: -#line 1952 "third_party/libpg_query/grammar/statements/select.y" +#line 73 "third_party/libpg_query/grammar/statements/copy.y" { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); - b->booltesttype = IS_UNKNOWN; - b->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)b; + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 884: -#line 1960 "third_party/libpg_query/grammar/statements/select.y" - { - PGBooleanTest *b = makeNode(PGBooleanTest); - b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); - b->booltesttype = IS_NOT_UNKNOWN; - b->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)b; - ;} +#line 80 "third_party/libpg_query/grammar/statements/copy.y" + {;} break; case 885: -#line 1968 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); - ;} +#line 81 "third_party/libpg_query/grammar/statements/copy.y" + {;} break; case 886: -#line 1972 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); - ;} +#line 85 "third_party/libpg_query/grammar/statements/copy.y" + {;} break; case 887: -#line 1976 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); - ;} +#line 86 "third_party/libpg_query/grammar/statements/copy.y" + {;} break; case 888: -#line 1980 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); - ;} +#line 91 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = true; ;} break; case 889: -#line 1984 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN, - "BETWEEN", - (yyvsp[(1) - (6)].node), - (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - ;} +#line 92 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.boolean) = false; ;} break; case 890: -#line 1992 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN, - "NOT BETWEEN", - (yyvsp[(1) - (7)].node), - (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), - (yylsp[(2) - (7)])); - ;} +#line 96 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 891: -#line 2000 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM, - "BETWEEN SYMMETRIC", - (yyvsp[(1) - (6)].node), - (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), - (yylsp[(2) - (6)])); - ;} +#line 97 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 892: -#line 2008 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM, - "NOT BETWEEN SYMMETRIC", - (yyvsp[(1) - (7)].node), - (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), - (yylsp[(2) - (7)])); - ;} +#line 102 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 893: -#line 2016 "third_party/libpg_query/grammar/statements/select.y" - { - /* in_expr returns a PGSubLink or a list of a_exprs */ - if (IsA((yyvsp[(3) - (3)].node), PGSubLink)) - { - /* generate foo = ANY (subquery) */ - PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node); - n->subLinkType = PG_ANY_SUBLINK; - n->subLinkId = 0; - n->testexpr = (yyvsp[(1) - (3)].node); - n->operName = NIL; /* show it's IN not = ANY */ - n->location = (yylsp[(2) - (3)]); - (yyval.node) = (PGNode *)n; - } - else - { - /* generate scalar IN expression */ - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); - } - ;} +#line 103 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;} break; case 894: -#line 2036 "third_party/libpg_query/grammar/statements/select.y" - { - /* in_expr returns a PGSubLink or a list of a_exprs */ - if (IsA((yyvsp[(4) - (4)].node), PGSubLink)) - { - /* generate NOT (foo = ANY (subquery)) */ - /* Make an = ANY node */ - PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node); - n->subLinkType = PG_ANY_SUBLINK; - n->subLinkId = 0; - n->testexpr = (yyvsp[(1) - (4)].node); - n->operName = NIL; /* show it's IN not = ANY */ - n->location = (yylsp[(2) - (4)]); - /* Stick a NOT on top; must have same parse location */ - (yyval.node) = makeNotExpr((PGNode *) n, (yylsp[(2) - (4)])); - } - else - { - /* generate scalar NOT IN expression */ - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); - } - ;} +#line 104 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) makeNode(PGAStar); ;} break; case 895: -#line 2058 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = (yyvsp[(3) - (4)].subquerytype); - n->subLinkId = 0; - n->testexpr = (yyvsp[(1) - (4)].node); - n->operName = (yyvsp[(2) - (4)].list); - n->subselect = (yyvsp[(4) - (4)].node); - n->location = (yylsp[(2) - (4)]); - (yyval.node) = (PGNode *)n; - ;} +#line 105 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;} break; case 896: -#line 2069 "third_party/libpg_query/grammar/statements/select.y" - { - if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK) - (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); - else - (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); - ;} +#line 106 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = NULL; ;} break; case 897: -#line 2076 "third_party/libpg_query/grammar/statements/select.y" +#line 112 "third_party/libpg_query/grammar/statements/copy.y" { - /* - * The SQL spec only allows DEFAULT in "contextually typed - * expressions", but for us, it's easier to allow it in - * any a_expr and then throw error during parse analysis - * if it's in an inappropriate context. This way also - * lets us say something smarter than "syntax error". - */ - PGSetToDefault *n = makeNode(PGSetToDefault); - /* parse analysis will fill in the rest */ - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; + (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 898: -#line 2089 "third_party/libpg_query/grammar/statements/select.y" +#line 120 "third_party/libpg_query/grammar/statements/copy.y" { - PGList *func_name = list_make1(makeString("construct_array")); - PGFuncCall *n = makeFuncCall(func_name, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - (yyval.node) = (PGNode *) n; - ;} + (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (2)])); + ;} break; case 899: -#line 2106 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 123 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.defelt) = NULL; ;} break; case 900: -#line 2108 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} +#line 128 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 901: -#line 2110 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 129 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.list) = NIL; ;} break; case 902: -#line 2112 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 135 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)])); + ;} break; case 903: -#line 2114 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 138 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.defelt) = NULL; ;} break; case 904: -#line 2116 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 144 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)])); + ;} break; case 905: -#line 2118 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 148 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); + ;} break; case 906: -#line 2120 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 152 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); + ;} break; case 907: -#line 2122 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 156 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); + ;} break; case 908: -#line 2124 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 160 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); + ;} break; case 909: -#line 2126 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 164 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[(1) - (1)])); + ;} break; case 910: -#line 2128 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 168 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); + ;} break; case 911: -#line 2130 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 172 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); + ;} break; case 912: -#line 2132 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 176 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); + ;} break; case 913: -#line 2134 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 180 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + ;} break; case 914: -#line 2136 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 184 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)])); + ;} break; case 915: -#line 2138 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} +#line 188 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[(4) - (4)].list), (yylsp[(1) - (4)])); + ;} break; case 916: -#line 2140 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 192 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + ;} break; case 917: -#line 2142 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} +#line 196 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); + ;} break; case 918: -#line 2144 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); - ;} +#line 203 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 919: -#line 2148 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); - ;} +#line 209 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 920: -#line 2152 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); - ;} +#line 210 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.str) = NULL; ;} break; case 921: -#line 2156 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); - ;} +#line 211 "third_party/libpg_query/grammar/statements/copy.y" + { (yyval.str) = NULL; ;} break; case 922: -#line 2169 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 217 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); + ;} break; case 923: -#line 2170 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 221 "third_party/libpg_query/grammar/statements/copy.y" + { + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); + ;} break; case 924: -#line 2172 "third_party/libpg_query/grammar/statements/select.y" +#line 11 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGPositionalReference *n = makeNode(PGPositionalReference); - n->position = (yyvsp[(2) - (2)].ival); - n->location = (yylsp[(1) - (2)]); + PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); + n->scope = VAR_SET_SCOPE_DEFAULT; (yyval.node) = (PGNode *) n; ;} break; case 925: -#line 2179 "third_party/libpg_query/grammar/statements/select.y" +#line 17 "third_party/libpg_query/grammar/statements/variable_set.y" { - if ((yyvsp[(2) - (2)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = makeParamRef(0, (yylsp[(1) - (2)])); - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *) n; - } - else - (yyval.node) = makeParamRef(0, (yylsp[(1) - (2)])); + PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); + n->scope = VAR_SET_SCOPE_LOCAL; + (yyval.node) = (PGNode *) n; ;} break; case 926: -#line 2191 "third_party/libpg_query/grammar/statements/select.y" +#line 23 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGParamRef *p = makeNode(PGParamRef); - p->number = (yyvsp[(1) - (2)].ival); - p->location = (yylsp[(1) - (2)]); - if ((yyvsp[(2) - (2)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = (PGNode *) p; - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *) n; - } - else - (yyval.node) = (PGNode *) p; + PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); + n->scope = VAR_SET_SCOPE_SESSION; + (yyval.node) = (PGNode *) n; ;} break; case 927: -#line 2206 "third_party/libpg_query/grammar/statements/select.y" +#line 29 "third_party/libpg_query/grammar/statements/variable_set.y" { - if ((yyvsp[(4) - (4)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = (yyvsp[(2) - (4)].node); - n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner); - (yyval.node) = (PGNode *)n; - } - else - (yyval.node) = (yyvsp[(2) - (4)].node); + PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); + n->scope = VAR_SET_SCOPE_GLOBAL; + (yyval.node) = (PGNode *) n; ;} break; case 928: -#line 2218 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 38 "third_party/libpg_query/grammar/statements/variable_set.y" + {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} break; case 929: -#line 2220 "third_party/libpg_query/grammar/statements/select.y" +#line 40 "third_party/libpg_query/grammar/statements/variable_set.y" { - if ((yyvsp[(2) - (2)].list)) { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = (yyvsp[(1) - (2)].node); - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *)n; - } - else { - (yyval.node) = (yyvsp[(1) - (2)].node); - } + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_CURRENT; + n->name = (yyvsp[(1) - (3)].str); + (yyval.vsetstmt) = n; ;} break; case 930: -#line 2232 "third_party/libpg_query/grammar/statements/select.y" +#line 48 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = PG_EXPR_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NIL; - n->subselect = (yyvsp[(1) - (1)].node); - n->location = (yylsp[(1) - (1)]); - (yyval.node) = (PGNode *)n; + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (char*) "timezone"; + if ((yyvsp[(3) - (3)].node) != NULL) + n->args = list_make1((yyvsp[(3) - (3)].node)); + else + n->kind = VAR_SET_DEFAULT; + (yyval.vsetstmt) = n; ;} break; case 931: -#line 2243 "third_party/libpg_query/grammar/statements/select.y" +#line 59 "third_party/libpg_query/grammar/statements/variable_set.y" { - /* - * Because the select_with_parens nonterminal is designed - * to "eat" as many levels of parens as possible, the - * '(' a_expr ')' opt_indirection production above will - * fail to match a sub-SELECT with indirection decoration; - * the sub-SELECT won't be regarded as an a_expr as long - * as there are parens around it. To support applying - * subscripting or field selection to a sub-SELECT result, - * we need this redundant-looking production. - */ - PGSubLink *n = makeNode(PGSubLink); - PGAIndirection *a = makeNode(PGAIndirection); - n->subLinkType = PG_EXPR_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NIL; - n->subselect = (yyvsp[(1) - (2)].node); - n->location = (yylsp[(1) - (2)]); - a->arg = (PGNode *)n; - a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *)a; + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (char*) "search_path"; + n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); + (yyval.vsetstmt) = n; ;} break; case 932: -#line 2267 "third_party/libpg_query/grammar/statements/select.y" +#line 71 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGSubLink *n = makeNode(PGSubLink); - n->subLinkType = PG_EXISTS_SUBLINK; - n->subLinkId = 0; - n->testexpr = NULL; - n->operName = NIL; - n->subselect = (yyvsp[(2) - (2)].node); - n->location = (yylsp[(1) - (2)]); - (yyval.node) = (PGNode *)n; + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (yyvsp[(1) - (3)].str); + n->args = (yyvsp[(3) - (3)].list); + (yyval.vsetstmt) = n; ;} break; case 933: -#line 2278 "third_party/libpg_query/grammar/statements/select.y" +#line 79 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGGroupingFunc *g = makeNode(PGGroupingFunc); - g->args = (yyvsp[(3) - (4)].list); - g->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)g; - ;} + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_VALUE; + n->name = (yyvsp[(1) - (3)].str); + n->args = (yyvsp[(3) - (3)].list); + (yyval.vsetstmt) = n; + ;} break; case 934: -#line 2287 "third_party/libpg_query/grammar/statements/select.y" +#line 87 "third_party/libpg_query/grammar/statements/variable_set.y" { - (yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)])); + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = (yyvsp[(1) - (3)].str); + (yyval.vsetstmt) = n; ;} break; case 935: -#line 2291 "third_party/libpg_query/grammar/statements/select.y" +#line 94 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(3) - (6)].list), (yylsp[(1) - (6)])); - n->agg_order = (yyvsp[(4) - (6)].list); - n->agg_ignore_nulls = (yyvsp[(5) - (6)].boolean); - (yyval.node) = (PGNode *)n; + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_SET_DEFAULT; + n->name = (yyvsp[(1) - (3)].str); + (yyval.vsetstmt) = n; ;} break; case 936: -#line 2298 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), (yylsp[(1) - (7)])); - n->func_variadic = true; - n->agg_order = (yyvsp[(5) - (7)].list); - n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); - (yyval.node) = (PGNode *)n; - ;} +#line 104 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 937: -#line 2306 "third_party/libpg_query/grammar/statements/select.y" - { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (9)].list), lappend((yyvsp[(3) - (9)].list), (yyvsp[(6) - (9)].node)), (yylsp[(1) - (9)])); - n->func_variadic = true; - n->agg_order = (yyvsp[(7) - (9)].list); - n->agg_ignore_nulls = (yyvsp[(8) - (9)].boolean); - (yyval.node) = (PGNode *)n; - ;} +#line 106 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} break; case 938: -#line 2314 "third_party/libpg_query/grammar/statements/select.y" +#line 112 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); - n->agg_order = (yyvsp[(5) - (7)].list); - n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); - /* Ideally we'd mark the PGFuncCall node to indicate - * "must be an aggregate", but there's no provision - * for that in PGFuncCall at the moment. - */ - (yyval.node) = (PGNode *)n; + (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 939: -#line 2325 "third_party/libpg_query/grammar/statements/select.y" +#line 116 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); - n->agg_order = (yyvsp[(5) - (7)].list); - n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean); - n->agg_distinct = true; - (yyval.node) = (PGNode *)n; + (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 940: -#line 2333 "third_party/libpg_query/grammar/statements/select.y" - { - /* - * We consider AGGREGATE(*) to invoke a parameterless - * aggregate. This does the right thing for COUNT(*), - * and there are no other aggregates in SQL that accept - * '*' as parameter. - * - * The PGFuncCall node is also marked agg_star = true, - * so that later processing can detect what the argument - * really was. - */ - PGFuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, (yylsp[(1) - (4)])); - n->agg_star = true; - (yyval.node) = (PGNode *)n; - ;} - break; - - case 941: -#line 2361 "third_party/libpg_query/grammar/statements/select.y" +#line 120 "third_party/libpg_query/grammar/statements/variable_set.y" { - PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (4)].node); - /* - * The order clause for WITHIN GROUP and the one for - * plain-aggregate ORDER BY share a field, so we have to - * check here that at most one is present. We also check - * for DISTINCT and VARIADIC here to give a better error - * location. Other consistency checks are deferred to - * parse analysis. - */ - if ((yyvsp[(2) - (4)].list) != NIL) + PGTypeName *t = (yyvsp[(1) - (3)].typnam); + if ((yyvsp[(3) - (3)].list) != NIL) { - if (n->agg_order != NIL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), - parser_errposition((yylsp[(2) - (4)])))); - if (n->agg_distinct) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("cannot use DISTINCT with WITHIN GROUP"), - parser_errposition((yylsp[(2) - (4)])))); - if (n->func_variadic) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("cannot use VARIADIC with WITHIN GROUP"), - parser_errposition((yylsp[(2) - (4)])))); - n->agg_order = (yyvsp[(2) - (4)].list); - n->agg_within_group = true; + PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list)); + if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), + parser_errposition((yylsp[(3) - (3)])))); } - n->agg_filter = (yyvsp[(3) - (4)].node); - n->over = (yyvsp[(4) - (4)].windef); - (yyval.node) = (PGNode *) n; + t->typmods = (yyvsp[(3) - (3)].list); + (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); + ;} + break; + + case 941: +#line 135 "third_party/libpg_query/grammar/statements/variable_set.y" + { + PGTypeName *t = (yyvsp[(1) - (5)].typnam); + t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), + makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); + (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); ;} break; case 942: -#line 2396 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 141 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} break; case 943: -#line 2406 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 142 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = NULL; ;} break; case 944: -#line 2407 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 143 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.node) = NULL; ;} break; case 945: -#line 2415 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"), - list_make1((yyvsp[(4) - (5)].node)), - (yylsp[(1) - (5)])); - ;} +#line 147 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 946: -#line 2421 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)])); - ;} +#line 148 "third_party/libpg_query/grammar/statements/variable_set.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 947: -#line 2425 "third_party/libpg_query/grammar/statements/select.y" +#line 7 "third_party/libpg_query/grammar/statements/call.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)])); + PGCallStmt *n = makeNode(PGCallStmt); + n->func = (yyvsp[(2) - (2)].node); + (yyval.node) = (PGNode *) n; ;} break; case 948: -#line 2429 "third_party/libpg_query/grammar/statements/select.y" +#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); + PGCheckPointStmt *n = makeNode(PGCheckPointStmt); + n->force = true; + (yyval.node) = (PGNode *)n; ;} break; case 949: -#line 2433 "third_party/libpg_query/grammar/statements/select.y" +#line 12 "third_party/libpg_query/grammar/statements/checkpoint.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)])); + PGCheckPointStmt *n = makeNode(PGCheckPointStmt); + n->force = false; + (yyval.node) = (PGNode *)n; ;} break; case 950: -#line 2437 "third_party/libpg_query/grammar/statements/select.y" +#line 9 "third_party/libpg_query/grammar/statements/delete.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); + PGDeleteStmt *n = makeNode(PGDeleteStmt); + n->relation = (yyvsp[(4) - (7)].range); + n->usingClause = (yyvsp[(5) - (7)].list); + n->whereClause = (yyvsp[(6) - (7)].node); + n->returningList = (yyvsp[(7) - (7)].list); + n->withClause = (yyvsp[(1) - (7)].with); + (yyval.node) = (PGNode *)n; ;} break; case 951: -#line 2441 "third_party/libpg_query/grammar/statements/select.y" +#line 22 "third_party/libpg_query/grammar/statements/delete.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)])); + (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 952: -#line 2445 "third_party/libpg_query/grammar/statements/select.y" +#line 26 "third_party/libpg_query/grammar/statements/delete.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); + PGAlias *alias = makeNode(PGAlias); + alias->aliasname = (yyvsp[(2) - (2)].str); + (yyvsp[(1) - (2)].range)->alias = alias; + (yyval.range) = (yyvsp[(1) - (2)].range); ;} break; case 953: -#line 2449 "third_party/libpg_query/grammar/statements/select.y" +#line 33 "third_party/libpg_query/grammar/statements/delete.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)])); + PGAlias *alias = makeNode(PGAlias); + alias->aliasname = (yyvsp[(3) - (3)].str); + (yyvsp[(1) - (3)].range)->alias = alias; + (yyval.range) = (yyvsp[(1) - (3)].range); ;} break; case 954: -#line 2453 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); - ;} +#line 43 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 955: -#line 2457 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)])); - ;} +#line 44 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.node) = NULL; ;} break; case 956: -#line 2461 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)])); - ;} +#line 50 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 957: -#line 2465 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)])); - ;} +#line 51 "third_party/libpg_query/grammar/statements/delete.y" + { (yyval.list) = NIL; ;} break; case 958: -#line 2469 "third_party/libpg_query/grammar/statements/select.y" +#line 7 "third_party/libpg_query/grammar/statements/rename.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[(1) - (1)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_SCHEMA; + n->subname = (yyvsp[(3) - (6)].str); + n->newname = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 959: -#line 2473 "third_party/libpg_query/grammar/statements/select.y" +#line 16 "third_party/libpg_query/grammar/statements/rename.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABLE; + n->relation = (yyvsp[(3) - (6)].range); + n->subname = NULL; + n->newname = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 960: -#line 2477 "third_party/libpg_query/grammar/statements/select.y" +#line 26 "third_party/libpg_query/grammar/statements/rename.y" { - (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABLE; + n->relation = (yyvsp[(5) - (8)].range); + n->subname = NULL; + n->newname = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; case 961: -#line 2481 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 0, (yylsp[(1) - (6)])); ;} +#line 36 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[(3) - (6)].range); + n->subname = NULL; + n->newname = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + ;} break; case 962: -#line 2483 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 1, (yylsp[(1) - (6)])); ;} +#line 46 "third_party/libpg_query/grammar/statements/rename.y" + { + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_SEQUENCE; + n->relation = (yyvsp[(5) - (8)].range); + n->subname = NULL; + n->newname = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + ;} break; case 963: -#line 2485 "third_party/libpg_query/grammar/statements/select.y" +#line 56 "third_party/libpg_query/grammar/statements/rename.y" { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_VIEW; + n->relation = (yyvsp[(3) - (6)].range); + n->subname = NULL; + n->newname = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 964: -#line 2489 "third_party/libpg_query/grammar/statements/select.y" +#line 66 "third_party/libpg_query/grammar/statements/rename.y" { - /* overlay(A PLACING B FROM C FOR D) is converted to - * overlay(A, B, C, D) - * overlay(A PLACING B FROM C) is converted to - * overlay(A, B, C) - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_VIEW; + n->relation = (yyvsp[(5) - (8)].range); + n->subname = NULL; + n->newname = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; case 965: -#line 2498 "third_party/libpg_query/grammar/statements/select.y" +#line 76 "third_party/libpg_query/grammar/statements/rename.y" { - /* position(A in B) is converted to position(B, A) */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_INDEX; + n->relation = (yyvsp[(3) - (6)].range); + n->subname = NULL; + n->newname = (yyvsp[(6) - (6)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 966: -#line 2503 "third_party/libpg_query/grammar/statements/select.y" +#line 86 "third_party/libpg_query/grammar/statements/rename.y" { - /* substring(A from B for C) is converted to - * substring(A, B, C) - thomas 2000-11-28 - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_INDEX; + n->relation = (yyvsp[(5) - (8)].range); + n->subname = NULL; + n->newname = (yyvsp[(8) - (8)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; case 967: -#line 2510 "third_party/libpg_query/grammar/statements/select.y" +#line 96 "third_party/libpg_query/grammar/statements/rename.y" { - /* TREAT(expr AS target) converts expr of a particular type to target, - * which is defined to be a subtype of the original expression. - * In SQL99, this is intended for use with structured UDTs, - * but let's make this a generally useful form allowing stronger - * coercions than are handled by implicit casting. - * - * Convert SystemTypeName() to SystemFuncName() even though - * at the moment they result in the same thing. - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str), - list_make1((yyvsp[(3) - (6)].node)), - (yylsp[(1) - (6)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_COLUMN; + n->relationType = PG_OBJECT_TABLE; + n->relation = (yyvsp[(3) - (8)].range); + n->subname = (yyvsp[(6) - (8)].str); + n->newname = (yyvsp[(8) - (8)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 968: -#line 2525 "third_party/libpg_query/grammar/statements/select.y" +#line 107 "third_party/libpg_query/grammar/statements/rename.y" { - /* various trim expressions are defined in SQL - * - thomas 1997-07-19 - */ - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_COLUMN; + n->relationType = PG_OBJECT_TABLE; + n->relation = (yyvsp[(5) - (10)].range); + n->subname = (yyvsp[(8) - (10)].str); + n->newname = (yyvsp[(10) - (10)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; case 969: -#line 2532 "third_party/libpg_query/grammar/statements/select.y" +#line 118 "third_party/libpg_query/grammar/statements/rename.y" { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABCONSTRAINT; + n->relation = (yyvsp[(3) - (8)].range); + n->subname = (yyvsp[(6) - (8)].str); + n->newname = (yyvsp[(8) - (8)].str); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; ;} break; case 970: -#line 2536 "third_party/libpg_query/grammar/statements/select.y" +#line 128 "third_party/libpg_query/grammar/statements/rename.y" { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + PGRenameStmt *n = makeNode(PGRenameStmt); + n->renameType = PG_OBJECT_TABCONSTRAINT; + n->relation = (yyvsp[(5) - (10)].range); + n->subname = (yyvsp[(8) - (10)].str); + n->newname = (yyvsp[(10) - (10)].str); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; ;} break; case 971: -#line 2540 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); - ;} +#line 140 "third_party/libpg_query/grammar/statements/rename.y" + { (yyval.ival) = COLUMN; ;} break; case 972: -#line 2544 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); - ;} +#line 141 "third_party/libpg_query/grammar/statements/rename.y" + { (yyval.ival) = 0; ;} break; case 973: -#line 2548 "third_party/libpg_query/grammar/statements/select.y" +#line 12 "third_party/libpg_query/grammar/statements/create_as.y" { - PGCoalesceExpr *c = makeNode(PGCoalesceExpr); - c->args = (yyvsp[(3) - (4)].list); - c->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)c; + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + ctas->query = (yyvsp[(6) - (7)].node); + ctas->into = (yyvsp[(4) - (7)].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_ERROR_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival); + (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean)); + (yyval.node) = (PGNode *) ctas; ;} break; case 974: -#line 2561 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(4) - (5)].list); ;} +#line 25 "third_party/libpg_query/grammar/statements/create_as.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + ctas->query = (yyvsp[(9) - (10)].node); + ctas->into = (yyvsp[(7) - (10)].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_IGNORE_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival); + (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean)); + (yyval.node) = (PGNode *) ctas; + ;} break; case 975: -#line 2562 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 41 "third_party/libpg_query/grammar/statements/create_as.y" + { (yyval.boolean) = true; ;} break; case 976: -#line 2566 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(4) - (5)].node); ;} +#line 42 "third_party/libpg_query/grammar/statements/create_as.y" + { (yyval.boolean) = false; ;} break; case 977: -#line 2567 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 43 "third_party/libpg_query/grammar/statements/create_as.y" + { (yyval.boolean) = true; ;} break; case 978: -#line 2575 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 49 "third_party/libpg_query/grammar/statements/create_as.y" + { + (yyval.into) = makeNode(PGIntoClause); + (yyval.into)->rel = (yyvsp[(1) - (4)].range); + (yyval.into)->colNames = (yyvsp[(2) - (4)].list); + (yyval.into)->options = (yyvsp[(3) - (4)].list); + (yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit); + (yyval.into)->viewQuery = NULL; + (yyval.into)->skipData = false; /* might get changed later */ + ;} break; case 979: -#line 2576 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 10 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[(4) - (9)].range); + n->view->relpersistence = (yyvsp[(2) - (9)].ival); + n->aliases = (yyvsp[(5) - (9)].list); + n->query = (yyvsp[(8) - (9)].node); + n->onconflict = PG_ERROR_ON_CONFLICT; + n->options = (yyvsp[(6) - (9)].list); + n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption); + (yyval.node) = (PGNode *) n; + ;} break; case 980: -#line 2580 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} +#line 23 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[(6) - (11)].range); + n->view->relpersistence = (yyvsp[(4) - (11)].ival); + n->aliases = (yyvsp[(7) - (11)].list); + n->query = (yyvsp[(10) - (11)].node); + n->onconflict = PG_REPLACE_ON_CONFLICT; + n->options = (yyvsp[(8) - (11)].list); + n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption); + (yyval.node) = (PGNode *) n; + ;} break; case 981: -#line 2582 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} +#line 36 "third_party/libpg_query/grammar/statements/view.y" + { + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[(5) - (12)].range); + n->view->relpersistence = (yyvsp[(2) - (12)].ival); + n->aliases = (yyvsp[(7) - (12)].list); + n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node)); + n->onconflict = PG_ERROR_ON_CONFLICT; + n->options = (yyvsp[(9) - (12)].list); + n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption); + if (n->withCheckOption != PG_NO_CHECK_OPTION) + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("WITH CHECK OPTION not supported on recursive views"), + parser_errposition((yylsp[(12) - (12)])))); + (yyval.node) = (PGNode *) n; + ;} break; case 982: -#line 2587 "third_party/libpg_query/grammar/statements/select.y" +#line 54 "third_party/libpg_query/grammar/statements/view.y" { - PGWindowDef *n = (yyvsp[(3) - (3)].windef); - n->name = (yyvsp[(1) - (3)].str); - (yyval.windef) = n; + PGViewStmt *n = makeNode(PGViewStmt); + n->view = (yyvsp[(7) - (14)].range); + n->view->relpersistence = (yyvsp[(4) - (14)].ival); + n->aliases = (yyvsp[(9) - (14)].list); + n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node)); + n->onconflict = PG_REPLACE_ON_CONFLICT; + n->options = (yyvsp[(11) - (14)].list); + n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption); + if (n->withCheckOption != PG_NO_CHECK_OPTION) + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("WITH CHECK OPTION not supported on recursive views"), + parser_errposition((yylsp[(14) - (14)])))); + (yyval.node) = (PGNode *) n; ;} break; case 983: -#line 2595 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} +#line 74 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} break; case 984: -#line 2597 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->name = (yyvsp[(2) - (2)].str); - n->refname = NULL; - n->partitionClause = NIL; - n->orderClause = NIL; - n->frameOptions = FRAMEOPTION_DEFAULTS; - n->startOffset = NULL; - n->endOffset = NULL; - n->location = (yylsp[(2) - (2)]); - (yyval.windef) = n; - ;} +#line 75 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} break; case 985: -#line 2610 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.windef) = NULL; ;} +#line 76 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;} break; case 986: -#line 2615 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->name = NULL; - n->refname = (yyvsp[(2) - (6)].str); - n->partitionClause = (yyvsp[(3) - (6)].list); - n->orderClause = (yyvsp[(4) - (6)].list); - /* copy relevant fields of opt_frame_clause */ - n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions; - n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset; - n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset; - n->location = (yylsp[(1) - (6)]); - (yyval.windef) = n; - ;} +#line 77 "third_party/libpg_query/grammar/statements/view.y" + { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;} break; case 987: -#line 2640 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} - break; - - case 988: -#line 2641 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = NULL; ;} - break; - - case 989: -#line 2644 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} - break; - - case 990: -#line 2645 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} - break; - - case 991: -#line 2657 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = (yyvsp[(2) - (2)].windef); - n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; - (yyval.windef) = n; - ;} - break; - - case 992: -#line 2663 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = (yyvsp[(2) - (2)].windef); - n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; - (yyval.windef) = n; - ;} - break; - - case 993: -#line 2669 "third_party/libpg_query/grammar/statements/select.y" +#line 8 "third_party/libpg_query/grammar/statements/create_schema.y" { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_DEFAULTS; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; + PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); + /* ...but not both */ + n->schemaname = (yyvsp[(3) - (4)].str); + n->schemaElts = (yyvsp[(4) - (4)].list); + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; ;} break; - case 994: -#line 2679 "third_party/libpg_query/grammar/statements/select.y" + case 988: +#line 17 "third_party/libpg_query/grammar/statements/create_schema.y" { - PGWindowDef *n = (yyvsp[(1) - (1)].windef); - /* reject invalid cases */ - if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame start cannot be UNBOUNDED FOLLOWING"), - parser_errposition((yylsp[(1) - (1)])))); - if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) + PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); + /* ...but not here */ + n->schemaname = (yyvsp[(6) - (7)].str); + if ((yyvsp[(7) - (7)].list) != NIL) ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame starting from following row cannot end with current row"), - parser_errposition((yylsp[(1) - (1)])))); - n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; - (yyval.windef) = n; + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), + parser_errposition((yylsp[(7) - (7)])))); + n->schemaElts = (yyvsp[(7) - (7)].list); + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; ;} break; - case 995: -#line 2696 "third_party/libpg_query/grammar/statements/select.y" + case 989: +#line 35 "third_party/libpg_query/grammar/statements/create_schema.y" { - PGWindowDef *n1 = (yyvsp[(2) - (4)].windef); - PGWindowDef *n2 = (yyvsp[(4) - (4)].windef); - /* form merged options */ - int frameOptions = n1->frameOptions; - /* shift converts START_ options to END_ options */ - frameOptions |= n2->frameOptions << 1; - frameOptions |= FRAMEOPTION_BETWEEN; - /* reject invalid cases */ - if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame start cannot be UNBOUNDED FOLLOWING"), - parser_errposition((yylsp[(2) - (4)])))); - if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame end cannot be UNBOUNDED PRECEDING"), - parser_errposition((yylsp[(4) - (4)])))); - if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && - (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame starting from current row cannot have preceding rows"), - parser_errposition((yylsp[(4) - (4)])))); - if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) && - (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING | - FRAMEOPTION_END_CURRENT_ROW))) - ereport(ERROR, - (errcode(PG_ERRCODE_WINDOWING_ERROR), - errmsg("frame starting from following row cannot have preceding rows"), - parser_errposition((yylsp[(4) - (4)])))); - n1->frameOptions = frameOptions; - n1->endOffset = n2->startOffset; - (yyval.windef) = n1; + if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ + (yyloc) = (yylsp[(2) - (2)]); + (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); + ;} + break; + + case 990: +#line 41 "third_party/libpg_query/grammar/statements/create_schema.y" + { (yyval.list) = NIL; ;} + break; + + case 995: +#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y" + { + PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); + (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival); + n->sequence = (yyvsp[(4) - (5)].range); + n->options = (yyvsp[(5) - (5)].list); + n->ownerId = InvalidOid; + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; ;} break; case 996: -#line 2741 "third_party/libpg_query/grammar/statements/select.y" +#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y" { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; + PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt); + (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival); + n->sequence = (yyvsp[(7) - (8)].range); + n->options = (yyvsp[(8) - (8)].list); + n->ownerId = InvalidOid; + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; ;} break; case 997: -#line 2749 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 32 "third_party/libpg_query/grammar/statements/create_sequence.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 998: -#line 2757 "third_party/libpg_query/grammar/statements/select.y" - { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; - n->startOffset = NULL; - n->endOffset = NULL; - (yyval.windef) = n; - ;} +#line 33 "third_party/libpg_query/grammar/statements/create_sequence.y" + { (yyval.list) = NIL; ;} break; case 999: -#line 2765 "third_party/libpg_query/grammar/statements/select.y" +#line 3 "third_party/libpg_query/grammar/statements/variable_show.y" { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING; - n->startOffset = (yyvsp[(1) - (2)].node); - n->endOffset = NULL; - (yyval.windef) = n; - ;} + PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); + n->stmt = (yyvsp[(2) - (2)].node); + n->name = (char*) "select"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + ;} break; case 1000: -#line 2773 "third_party/libpg_query/grammar/statements/select.y" +#line 10 "third_party/libpg_query/grammar/statements/variable_show.y" { - PGWindowDef *n = makeNode(PGWindowDef); - n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING; - n->startOffset = (yyvsp[(1) - (2)].node); - n->endOffset = NULL; - (yyval.windef) = n; - ;} + PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); + n->stmt = (yyvsp[(2) - (2)].node); + n->name = (char*) "select"; + n->is_summary = 1; + (yyval.node) = (PGNode *) n; + ;} break; case 1001: -#line 2793 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 18 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (yyvsp[(2) - (2)].str); + n->is_summary = 1; + (yyval.node) = (PGNode *) n; + ;} break; case 1002: -#line 2794 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 25 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (yyvsp[(2) - (2)].str); + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + ;} break; case 1003: -#line 2797 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list);;} +#line 32 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "timezone"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + ;} break; case 1004: -#line 2798 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} +#line 39 "third_party/libpg_query/grammar/statements/variable_show.y" + { + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "transaction_isolation"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + ;} break; case 1005: -#line 2802 "third_party/libpg_query/grammar/statements/select.y" +#line 46 "third_party/libpg_query/grammar/statements/variable_show.y" { - PGNamedArgExpr *na = makeNode(PGNamedArgExpr); - na->name = (yyvsp[(1) - (3)].str); - na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); - na->argnumber = -1; - na->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) na; - ;} - break; - - case 1006: -#line 2812 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} - break; - - case 1007: -#line 2813 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} + PGVariableShowStmt *n = makeNode(PGVariableShowStmt); + n->name = (char*) "all"; + n->is_summary = 0; + (yyval.node) = (PGNode *) n; + ;} break; case 1008: -#line 2815 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} +#line 57 "third_party/libpg_query/grammar/statements/variable_show.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1009: -#line 2816 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} +#line 59 "third_party/libpg_query/grammar/statements/variable_show.y" + { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; case 1010: -#line 2817 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.subquerytype) = PG_ALL_SUBLINK; ;} +#line 8 "third_party/libpg_query/grammar/statements/prepare.y" + { + PGPrepareStmt *n = makeNode(PGPrepareStmt); + n->name = (yyvsp[(2) - (5)].str); + n->argtypes = (yyvsp[(3) - (5)].list); + n->query = (yyvsp[(5) - (5)].node); + (yyval.node) = (PGNode *) n; + ;} break; case 1011: -#line 2820 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 18 "third_party/libpg_query/grammar/statements/prepare.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1012: -#line 2821 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;} - break; - - case 1013: -#line 2824 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "+"; ;} - break; - - case 1014: -#line 2825 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "-"; ;} - break; - - case 1015: -#line 2826 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "*"; ;} - break; - - case 1016: -#line 2827 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "/"; ;} +#line 19 "third_party/libpg_query/grammar/statements/prepare.y" + { (yyval.list) = NIL; ;} break; case 1017: -#line 2828 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "%"; ;} +#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); + n->sequence = (yyvsp[(3) - (4)].range); + n->options = (yyvsp[(4) - (4)].list); + n->missing_ok = false; + (yyval.node) = (PGNode *)n; + ;} break; case 1018: -#line 2829 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "^"; ;} +#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt); + n->sequence = (yyvsp[(5) - (6)].range); + n->options = (yyvsp[(6) - (6)].list); + n->missing_ok = true; + (yyval.node) = (PGNode *)n; + ;} break; case 1019: -#line 2830 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "<"; ;} +#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1020: -#line 2831 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = ">"; ;} +#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1021: -#line 2832 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "="; ;} +#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {;} break; case 1022: -#line 2833 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "<="; ;} +#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {;} break; case 1023: -#line 2834 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = ">="; ;} +#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {;} break; case 1024: -#line 2835 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.conststr) = "<>"; ;} +#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;} break; case 1025: -#line 2839 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); ;} break; case 1026: -#line 2841 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); + doNegateFloat((yyval.value)); + ;} break; case 1027: -#line 2846 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;} break; case 1028: -#line 2848 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)])); + ;} break; case 1029: -#line 2853 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); + ;} break; case 1030: -#line 2855 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[(1) - (1)])); + ;} break; case 1031: -#line 2857 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("~~")); ;} +#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[(1) - (2)])); + ;} break; case 1032: -#line 2859 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("!~~")); ;} +#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); + ;} break; case 1033: -#line 2861 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("~~~")); ;} +#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); + ;} break; case 1034: -#line 2863 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("!~~~")); ;} +#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)])); + ;} break; case 1035: -#line 2865 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("~~*")); ;} +#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)])); + ;} break; case 1036: -#line 2867 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString("!~~*")); ;} +#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)])); + ;} break; case 1037: -#line 2881 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + (yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + ;} break; case 1038: -#line 2883 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} +#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { + /* not documented, only used by pg_dump */ + (yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); + ;} break; case 1039: -#line 2887 "third_party/libpg_query/grammar/statements/select.y" +#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y" { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); + (yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); ;} break; case 1040: -#line 2891 "third_party/libpg_query/grammar/statements/select.y" +#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y" { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); + (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); ;} break; case 1041: -#line 2898 "third_party/libpg_query/grammar/statements/select.y" +#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y" { - (yyval.list) = (yyvsp[(1) - (1)].list); + (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)])); ;} break; case 1042: -#line 2902 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = NULL; - ;} +#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {;} break; case 1043: -#line 2910 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); - ;} +#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y" + {;} break; case 1044: -#line 2914 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); - ;} +#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 1045: -#line 2920 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} +#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} break; case 1046: -#line 2924 "third_party/libpg_query/grammar/statements/select.y" - { - PGNamedArgExpr *na = makeNode(PGNamedArgExpr); - na->name = (yyvsp[(1) - (3)].str); - na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); - na->argnumber = -1; /* until determined */ - na->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) na; - ;} +#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y" + { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} break; case 1047: -#line 2933 "third_party/libpg_query/grammar/statements/select.y" +#line 10 "third_party/libpg_query/grammar/statements/analyze.y" { - PGNamedArgExpr *na = makeNode(PGNamedArgExpr); - na->name = (yyvsp[(1) - (3)].str); - na->arg = (PGExpr *) (yyvsp[(3) - (3)].node); - na->argnumber = -1; /* until determined */ - na->location = (yylsp[(1) - (3)]); - (yyval.node) = (PGNode *) na; + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_ANALYZE; + if ((yyvsp[(2) - (2)].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = NULL; + n->va_cols = NIL; + (yyval.node) = (PGNode *)n; ;} break; case 1048: -#line 2943 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} +#line 20 "third_party/libpg_query/grammar/statements/analyze.y" + { + PGVacuumStmt *n = makeNode(PGVacuumStmt); + n->options = PG_VACOPT_ANALYZE; + if ((yyvsp[(2) - (4)].boolean)) + n->options |= PG_VACOPT_VERBOSE; + n->relation = (yyvsp[(3) - (4)].range); + n->va_cols = (yyvsp[(4) - (4)].list); + (yyval.node) = (PGNode *)n; + ;} break; case 1049: -#line 2944 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} +#line 8 "third_party/libpg_query/grammar/statements/load.y" + { + PGLoadStmt *n = makeNode(PGLoadStmt); + n->filename = (yyvsp[(2) - (2)].str); + n->load_type = PG_LOAD_TYPE_LOAD; + (yyval.node) = (PGNode *)n; + ;} break; case 1050: -#line 2949 "third_party/libpg_query/grammar/statements/select.y" +#line 14 "third_party/libpg_query/grammar/statements/load.y" { - (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); + PGLoadStmt *n = makeNode(PGLoadStmt); + n->filename = (yyvsp[(2) - (2)].str); + n->load_type = PG_LOAD_TYPE_INSTALL; + (yyval.node) = (PGNode *)n; ;} break; case 1051: -#line 2952 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 20 "third_party/libpg_query/grammar/statements/load.y" + { + PGLoadStmt *n = makeNode(PGLoadStmt); + n->filename = (yyvsp[(3) - (3)].str); + n->load_type = PG_LOAD_TYPE_FORCE_INSTALL; + (yyval.node) = (PGNode *)n; + ;} break; case 1052: -#line 2959 "third_party/libpg_query/grammar/statements/select.y" +#line 28 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1053: -#line 2960 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "year"; ;} +#line 29 "third_party/libpg_query/grammar/statements/load.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1054: -#line 2961 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "month"; ;} +#line 10 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range); + (yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict); + (yyvsp[(5) - (7)].istmt)->returningList = (yyvsp[(7) - (7)].list); + (yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with); + (yyval.node) = (PGNode *) (yyvsp[(5) - (7)].istmt); + ;} break; case 1055: -#line 2962 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "day"; ;} +#line 22 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.istmt) = makeNode(PGInsertStmt); + (yyval.istmt)->cols = NIL; + (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); + ;} break; case 1056: -#line 2963 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "hour"; ;} +#line 28 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.istmt) = makeNode(PGInsertStmt); + (yyval.istmt)->cols = NIL; + (yyval.istmt)->override = (yyvsp[(2) - (4)].override); + (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); + ;} break; case 1057: -#line 2964 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "minute"; ;} +#line 35 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.istmt) = makeNode(PGInsertStmt); + (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); + (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); + ;} break; case 1058: -#line 2965 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "second"; ;} +#line 41 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.istmt) = makeNode(PGInsertStmt); + (yyval.istmt)->cols = (yyvsp[(2) - (7)].list); + (yyval.istmt)->override = (yyvsp[(5) - (7)].override); + (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node); + ;} break; case 1059: -#line 2966 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "millisecond"; ;} +#line 48 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.istmt) = makeNode(PGInsertStmt); + (yyval.istmt)->cols = NIL; + (yyval.istmt)->selectStmt = NULL; + ;} break; case 1060: -#line 2967 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (char*) "microsecond"; ;} +#line 58 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.range) = (yyvsp[(1) - (1)].range); + ;} break; case 1061: -#line 2968 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 62 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); + (yyval.range) = (yyvsp[(1) - (3)].range); + ;} break; case 1062: -#line 2979 "third_party/libpg_query/grammar/statements/select.y" +#line 71 "third_party/libpg_query/grammar/statements/insert.y" { - (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); + (yyval.infer) = makeNode(PGInferClause); + (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list); + (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node); + (yyval.infer)->conname = NULL; + (yyval.infer)->location = (yylsp[(1) - (4)]); ;} break; case 1063: -#line 2983 "third_party/libpg_query/grammar/statements/select.y" +#line 80 "third_party/libpg_query/grammar/statements/insert.y" { - (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.infer) = makeNode(PGInferClause); + (yyval.infer)->indexElems = NIL; + (yyval.infer)->whereClause = NULL; + (yyval.infer)->conname = (yyvsp[(3) - (3)].str); + (yyval.infer)->location = (yylsp[(1) - (3)]); ;} break; case 1064: -#line 2990 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 88 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.infer) = NULL; + ;} break; case 1065: -#line 2996 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} +#line 95 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.with) = (yyvsp[(1) - (1)].with); ;} break; case 1066: -#line 2997 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 96 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.with) = NULL; ;} break; case 1067: -#line 3014 "third_party/libpg_query/grammar/statements/select.y" +#line 102 "third_party/libpg_query/grammar/statements/insert.y" { - (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[(1) - (2)].str); + (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.target)->val = NULL; + (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 1068: -#line 3018 "third_party/libpg_query/grammar/statements/select.y" +#line 114 "third_party/libpg_query/grammar/statements/insert.y" { - /* not legal per SQL99, but might as well allow it */ - (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node)); + (yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node); + (yyval.list) = list_make1((yyvsp[(1) - (3)].target)); ;} break; case 1069: -#line 3023 "third_party/libpg_query/grammar/statements/select.y" +#line 119 "third_party/libpg_query/grammar/statements/insert.y" { - (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); + int ncolumns = list_length((yyvsp[(2) - (5)].list)); + int i = 1; + PGListCell *col_cell; + + /* Create a PGMultiAssignRef source for each target */ + foreach(col_cell, (yyvsp[(2) - (5)].list)) + { + PGResTarget *res_col = (PGResTarget *) lfirst(col_cell); + PGMultiAssignRef *r = makeNode(PGMultiAssignRef); + + r->source = (PGNode *) (yyvsp[(5) - (5)].node); + r->colno = i; + r->ncolumns = ncolumns; + res_col->val = (PGNode *) r; + i++; + } + + (yyval.list) = (yyvsp[(2) - (5)].list); ;} break; case 1070: -#line 3027 "third_party/libpg_query/grammar/statements/select.y" +#line 144 "third_party/libpg_query/grammar/statements/insert.y" { - /* - * Since there are no cases where this syntax allows - * a textual FOR value, we forcibly cast the argument - * to int4. The possible matches in pg_proc are - * substring(text,int4) and substring(text,text), - * and we don't want the parser to choose the latter, - * which it is likely to do if the second argument - * is unknown or doesn't have an implicit cast to int4. - */ - (yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1), - makeTypeCast((yyvsp[(2) - (2)].node), - SystemTypeName("int4"), 0, -1)); + (yyval.onconflict) = makeNode(PGOnConflictClause); + (yyval.onconflict)->action = PG_ONCONFLICT_UPDATE; + (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer); + (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list); + (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node); + (yyval.onconflict)->location = (yylsp[(1) - (8)]); ;} break; case 1071: -#line 3042 "third_party/libpg_query/grammar/statements/select.y" +#line 154 "third_party/libpg_query/grammar/statements/insert.y" { - (yyval.list) = (yyvsp[(1) - (1)].list); + (yyval.onconflict) = makeNode(PGOnConflictClause); + (yyval.onconflict)->action = PG_ONCONFLICT_NOTHING; + (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer); + (yyval.onconflict)->targetList = NIL; + (yyval.onconflict)->whereClause = NULL; + (yyval.onconflict)->location = (yylsp[(1) - (5)]); ;} break; case 1072: -#line 3046 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 163 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.onconflict) = NULL; + ;} break; case 1073: -#line 3050 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 170 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.ielem) = makeNode(PGIndexElem); + (yyval.ielem)->name = (yyvsp[(1) - (5)].str); + (yyval.ielem)->expr = NULL; + (yyval.ielem)->indexcolname = NULL; + (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); + (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); + (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder); + (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder); + ;} break; case 1074: -#line 3053 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 181 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.ielem) = makeNode(PGIndexElem); + (yyval.ielem)->name = NULL; + (yyval.ielem)->expr = (yyvsp[(1) - (5)].node); + (yyval.ielem)->indexcolname = NULL; + (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); + (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); + (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder); + (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder); + ;} break; case 1075: -#line 3056 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} +#line 192 "third_party/libpg_query/grammar/statements/insert.y" + { + (yyval.ielem) = makeNode(PGIndexElem); + (yyval.ielem)->name = NULL; + (yyval.ielem)->expr = (yyvsp[(2) - (7)].node); + (yyval.ielem)->indexcolname = NULL; + (yyval.ielem)->collation = (yyvsp[(4) - (7)].list); + (yyval.ielem)->opclass = (yyvsp[(5) - (7)].list); + (yyval.ielem)->ordering = (yyvsp[(6) - (7)].sortorder); + (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder); + ;} break; case 1076: -#line 3057 "third_party/libpg_query/grammar/statements/select.y" +#line 206 "third_party/libpg_query/grammar/statements/insert.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1077: -#line 3058 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 207 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = NIL; ;} break; case 1078: -#line 3062 "third_party/libpg_query/grammar/statements/select.y" - { - PGSubLink *n = makeNode(PGSubLink); - n->subselect = (yyvsp[(1) - (1)].node); - /* other fields will be filled later */ - (yyval.node) = (PGNode *)n; - ;} +#line 213 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;} break; case 1079: -#line 3068 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;} +#line 214 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;} break; case 1080: -#line 3079 "third_party/libpg_query/grammar/statements/select.y" - { - PGCaseExpr *c = makeNode(PGCaseExpr); - c->casetype = InvalidOid; /* not analyzed yet */ - c->arg = (PGExpr *) (yyvsp[(2) - (5)].node); - c->args = (yyvsp[(3) - (5)].list); - c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node); - c->location = (yylsp[(1) - (5)]); - (yyval.node) = (PGNode *)c; - ;} +#line 219 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1081: -#line 3092 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 220 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} break; case 1082: -#line 3093 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 226 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1083: -#line 3098 "third_party/libpg_query/grammar/statements/select.y" - { - PGCaseWhen *w = makeNode(PGCaseWhen); - w->expr = (PGExpr *) (yyvsp[(2) - (4)].node); - w->result = (PGExpr *) (yyvsp[(4) - (4)].node); - w->location = (yylsp[(1) - (4)]); - (yyval.node) = (PGNode *)w; - ;} +#line 227 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = NIL; ;} break; case 1084: -#line 3108 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 231 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1085: -#line 3109 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 232 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = NIL; ;} break; case 1086: -#line 3112 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 238 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1087: -#line 3113 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 240 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1088: -#line 3117 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); - ;} +#line 245 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1089: -#line 3121 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); - ;} +#line 246 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} break; case 1090: -#line 3128 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeString((yyvsp[(2) - (2)].str)); - ;} +#line 250 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} break; case 1091: -#line 3132 "third_party/libpg_query/grammar/statements/select.y" - { - PGAIndices *ai = makeNode(PGAIndices); - ai->is_slice = false; - ai->lidx = NULL; - ai->uidx = (yyvsp[(2) - (3)].node); - (yyval.node) = (PGNode *) ai; - ;} +#line 251 "third_party/libpg_query/grammar/statements/insert.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} break; case 1092: -#line 3140 "third_party/libpg_query/grammar/statements/select.y" +#line 257 "third_party/libpg_query/grammar/statements/insert.y" { - PGAIndices *ai = makeNode(PGAIndices); - ai->is_slice = true; - ai->lidx = (yyvsp[(2) - (5)].node); - ai->uidx = (yyvsp[(4) - (5)].node); - (yyval.node) = (PGNode *) ai; + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[(1) - (2)].str); + (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); + (yyval.target)->val = NULL; /* upper production sets this */ + (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 1093: -#line 3150 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} +#line 8 "third_party/libpg_query/grammar/statements/execute.y" + { + PGExecuteStmt *n = makeNode(PGExecuteStmt); + n->name = (yyvsp[(2) - (3)].str); + n->params = (yyvsp[(3) - (3)].list); + (yyval.node) = (PGNode *) n; + ;} break; case 1094: -#line 3151 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 16 "third_party/libpg_query/grammar/statements/execute.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + PGExecuteStmt *n = makeNode(PGExecuteStmt); + n->name = (yyvsp[(7) - (9)].str); + n->params = (yyvsp[(8) - (9)].list); + ctas->query = (PGNode *) n; + ctas->into = (yyvsp[(4) - (9)].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_ERROR_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival); + (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); + (yyval.node) = (PGNode *) ctas; + ;} break; case 1095: -#line 3155 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} +#line 33 "third_party/libpg_query/grammar/statements/execute.y" + { + PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); + PGExecuteStmt *n = makeNode(PGExecuteStmt); + n->name = (yyvsp[(10) - (12)].str); + n->params = (yyvsp[(11) - (12)].list); + ctas->query = (PGNode *) n; + ctas->into = (yyvsp[(7) - (12)].into); + ctas->relkind = PG_OBJECT_TABLE; + ctas->is_select_into = false; + ctas->onconflict = PG_IGNORE_ON_CONFLICT; + /* cram additional flags into the PGIntoClause */ + (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival); + (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean)); + (yyval.node) = (PGNode *) ctas; + ;} break; case 1096: -#line 3156 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 51 "third_party/libpg_query/grammar/statements/execute.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1097: -#line 3160 "third_party/libpg_query/grammar/statements/select.y" +#line 52 "third_party/libpg_query/grammar/statements/execute.y" { (yyval.list) = NIL; ;} break; case 1098: -#line 3161 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y" + { (yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt); ;} + break; + + case 1099: +#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET; + n->name = (yyvsp[(1) - (1)].str); + (yyval.vsetstmt) = n; + ;} + break; + + case 1100: +#line 15 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET_ALL; + (yyval.vsetstmt) = n; + ;} break; case 1101: -#line 3175 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 24 "third_party/libpg_query/grammar/statements/variable_reset.y" + { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} break; case 1102: -#line 3176 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET; + n->name = (char*) "timezone"; + (yyval.vsetstmt) = n; + ;} break; case 1103: -#line 3180 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} +#line 33 "third_party/libpg_query/grammar/statements/variable_reset.y" + { + PGVariableSetStmt *n = makeNode(PGVariableSetStmt); + n->kind = VAR_RESET; + n->name = (char*) "transaction_isolation"; + (yyval.vsetstmt) = n; + ;} break; case 1104: -#line 3181 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} +#line 9 "third_party/libpg_query/grammar/statements/create.y" + { + PGCreateStmt *n = makeNode(PGCreateStmt); + (yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival); + n->relation = (yyvsp[(4) - (9)].range); + n->tableElts = (yyvsp[(6) - (9)].list); + n->ofTypename = NULL; + n->constraints = NIL; + n->options = (yyvsp[(8) - (9)].list); + n->oncommit = (yyvsp[(9) - (9)].oncommit); + n->onconflict = PG_ERROR_ON_CONFLICT; + (yyval.node) = (PGNode *)n; + ;} break; case 1105: -#line 3185 "third_party/libpg_query/grammar/statements/select.y" +#line 24 "third_party/libpg_query/grammar/statements/create.y" { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(3) - (3)].str); - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node); - (yyval.target)->location = (yylsp[(1) - (3)]); + PGCreateStmt *n = makeNode(PGCreateStmt); + (yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival); + n->relation = (yyvsp[(7) - (12)].range); + n->tableElts = (yyvsp[(9) - (12)].list); + n->ofTypename = NULL; + n->constraints = NIL; + n->options = (yyvsp[(11) - (12)].list); + n->oncommit = (yyvsp[(12) - (12)].oncommit); + n->onconflict = PG_IGNORE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; ;} break; case 1106: -#line 3201 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = (yyvsp[(2) - (2)].str); - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node); - (yyval.target)->location = (yylsp[(1) - (2)]); +#line 39 "third_party/libpg_query/grammar/statements/create.y" + { + PGCreateStmt *n = makeNode(PGCreateStmt); + (yyvsp[(6) - (11)].range)->relpersistence = (yyvsp[(4) - (11)].ival); + n->relation = (yyvsp[(6) - (11)].range); + n->tableElts = (yyvsp[(8) - (11)].list); + n->ofTypename = NULL; + n->constraints = NIL; + n->options = (yyvsp[(10) - (11)].list); + n->oncommit = (yyvsp[(11) - (11)].oncommit); + n->onconflict = PG_REPLACE_ON_CONFLICT; + (yyval.node) = (PGNode *)n; ;} break; case 1107: -#line 3209 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = NULL; - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node); - (yyval.target)->location = (yylsp[(1) - (1)]); - ;} +#line 56 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = 0; ;} break; case 1108: -#line 3217 "third_party/libpg_query/grammar/statements/select.y" +#line 58 "third_party/libpg_query/grammar/statements/create.y" { - PGColumnRef *n = makeNode(PGColumnRef); - PGAStar *star = makeNode(PGAStar); - n->fields = list_make1(star); - n->location = (yylsp[(1) - (3)]); - star->except_list = (yyvsp[(2) - (3)].list); - star->replace_list = (yyvsp[(3) - (3)].list); + /* + * We must complain about conflicting options. + * We could, but choose not to, complain about redundant + * options (ie, where $2's bit is already set in $1). + */ + int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival); - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = NULL; - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)n; - (yyval.target)->location = (yylsp[(1) - (3)]); + /* special message for this case */ + if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), + parser_errposition((yylsp[(2) - (2)])))); + /* generic message for other conflicts */ + if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || + (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) + ereport(ERROR, + (errcode(PG_ERRCODE_SYNTAX_ERROR), + errmsg("conflicting constraint properties"), + parser_errposition((yylsp[(2) - (2)])))); + (yyval.ival) = newspec; ;} break; case 1109: -#line 3232 "third_party/libpg_query/grammar/statements/select.y" - { - PGColumnRef *n = makeNode(PGColumnRef); - PGAStar *star = makeNode(PGAStar); - n->fields = list_make1(star); - n->location = (yylsp[(1) - (5)]); - star->relation = (yyvsp[(1) - (5)].str); - star->except_list = (yyvsp[(4) - (5)].list); - star->replace_list = (yyvsp[(5) - (5)].list); - - (yyval.target) = makeNode(PGResTarget); - (yyval.target)->name = NULL; - (yyval.target)->indirection = NIL; - (yyval.target)->val = (PGNode *)n; - (yyval.target)->location = (yylsp[(1) - (5)]); - ;} +#line 84 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;} break; case 1110: -#line 3249 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 85 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 1111: -#line 3250 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} +#line 86 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;} break; case 1112: -#line 3253 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 87 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;} break; case 1113: -#line 3254 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NULL; ;} +#line 88 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)makeString((yyvsp[(1) - (1)].str)); ;} break; case 1114: -#line 3257 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;} +#line 89 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 1115: -#line 3261 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} +#line 93 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1116: -#line 3262 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} +#line 94 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1117: -#line 3265 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (4)].list); ;} +#line 99 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 1118: -#line 3266 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;} +#line 104 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;} break; case 1119: -#line 3267 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NULL; ;} +#line 105 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;} break; case 1120: -#line 3277 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} +#line 106 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;} break; case 1121: -#line 3278 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} +#line 107 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;} break; case 1122: -#line 3290 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); - ;} +#line 108 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;} break; case 1123: -#line 3294 "third_party/libpg_query/grammar/statements/select.y" +#line 114 "third_party/libpg_query/grammar/statements/create.y" { - check_qualified_name((yyvsp[(2) - (2)].list), yyscanner); - (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)])); - switch (list_length((yyvsp[(2) - (2)].list))) - { - case 1: - (yyval.range)->catalogname = NULL; - (yyval.range)->schemaname = (yyvsp[(1) - (2)].str); - (yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list))); - break; - case 2: - (yyval.range)->catalogname = (yyvsp[(1) - (2)].str); - (yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list))); - (yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list))); - break; - default: - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("improper qualified name (too many dotted names): %s", - NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))), - parser_errposition((yylsp[(1) - (2)])))); - break; - } + PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node)); + n->conname = (yyvsp[(2) - (3)].str); + n->location = (yylsp[(1) - (3)]); + (yyval.node) = (PGNode *) n; ;} break; case 1124: -#line 3321 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 120 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1125: -#line 3323 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} +#line 121 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1126: -#line 3327 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 123 "third_party/libpg_query/grammar/statements/create.y" + { + /* + * Note: the PGCollateClause is momentarily included in + * the list built by ColQualList, but we split it out + * again in SplitColQualList. + */ + PGCollateClause *n = makeNode(PGCollateClause); + n->arg = NULL; + n->collname = (yyvsp[(2) - (2)].list); + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *) n; + ;} break; case 1127: -#line 3329 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 140 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_NOTNULL; + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *)n; + ;} break; case 1128: -#line 3340 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 147 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_NULL; + n->location = (yylsp[(1) - (1)]); + (yyval.node) = (PGNode *)n; + ;} break; case 1129: -#line 3343 "third_party/libpg_query/grammar/statements/select.y" +#line 154 "third_party/libpg_query/grammar/statements/create.y" { - (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), - yyscanner); - ;} + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_UNIQUE; + n->location = (yylsp[(1) - (2)]); + n->keys = NULL; + n->options = (yyvsp[(2) - (2)].list); + n->indexname = NULL; + (yyval.node) = (PGNode *)n; + ;} break; case 1130: -#line 3354 "third_party/libpg_query/grammar/statements/select.y" +#line 164 "third_party/libpg_query/grammar/statements/create.y" { - (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_PRIMARY; + n->location = (yylsp[(1) - (3)]); + n->keys = NULL; + n->options = (yyvsp[(3) - (3)].list); + n->indexname = NULL; + (yyval.node) = (PGNode *)n; ;} break; case 1131: -#line 3358 "third_party/libpg_query/grammar/statements/select.y" +#line 174 "third_party/libpg_query/grammar/statements/create.y" { - (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_CHECK; + n->location = (yylsp[(1) - (5)]); + n->is_no_inherit = (yyvsp[(5) - (5)].boolean); + n->raw_expr = (yyvsp[(3) - (5)].node); + n->cooked_expr = NULL; + n->skip_validation = false; + n->initially_valid = true; + (yyval.node) = (PGNode *)n; ;} break; case 1132: -#line 3362 "third_party/libpg_query/grammar/statements/select.y" +#line 186 "third_party/libpg_query/grammar/statements/create.y" { - if ((yyvsp[(2) - (2)].list)) - { - PGAIndirection *n = makeNode(PGAIndirection); - n->arg = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)])); - n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); - (yyval.node) = (PGNode *) n; - } - else - (yyval.node) = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)])); + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_COMPRESSION; + n->location = (yylsp[(1) - (3)]); + n->compression_name = (yyvsp[(3) - (3)].str); + (yyval.node) = (PGNode *)n; ;} break; case 1133: -#line 3374 "third_party/libpg_query/grammar/statements/select.y" +#line 194 "third_party/libpg_query/grammar/statements/create.y" { - (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_DEFAULT; + n->location = (yylsp[(1) - (2)]); + n->raw_expr = (yyvsp[(2) - (2)].node); + n->cooked_expr = NULL; + (yyval.node) = (PGNode *)n; ;} break; case 1134: -#line 3378 "third_party/libpg_query/grammar/statements/select.y" +#line 203 "third_party/libpg_query/grammar/statements/create.y" { - /* This is a bit constant per SQL99: - * Without Feature F511, "BIT data type", - * a shall not be a - * or a . - */ - (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_IDENTITY; + n->generated_when = (yyvsp[(2) - (5)].ival); + n->options = (yyvsp[(5) - (5)].list); + n->location = (yylsp[(1) - (5)]); + (yyval.node) = (PGNode *)n; ;} break; case 1135: -#line 3387 "third_party/libpg_query/grammar/statements/select.y" +#line 212 "third_party/libpg_query/grammar/statements/create.y" { - /* generic type 'literal' syntax */ - PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); - t->location = (yylsp[(1) - (2)]); - (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t); + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_FOREIGN; + n->location = (yylsp[(1) - (5)]); + n->pktable = (yyvsp[(2) - (5)].range); + n->fk_attrs = NIL; + n->pk_attrs = (yyvsp[(3) - (5)].list); + n->fk_matchtype = (yyvsp[(4) - (5)].ival); + n->fk_upd_action = (char) ((yyvsp[(5) - (5)].ival) >> 8); + n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF); + n->skip_validation = false; + n->initially_valid = true; + (yyval.node) = (PGNode *)n; ;} break; case 1136: -#line 3394 "third_party/libpg_query/grammar/statements/select.y" +#line 231 "third_party/libpg_query/grammar/statements/create.y" { - /* generic syntax with a type modifier */ - PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (7)].list)); - PGListCell *lc; - - /* - * We must use func_arg_list and opt_sort_clause in the - * production to avoid reduce/reduce conflicts, but we - * don't actually wish to allow PGNamedArgExpr in this - * context, ORDER BY, nor IGNORE NULLS. - */ - foreach(lc, (yyvsp[(3) - (7)].list)) - { - PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc); - - if (IsA(arg, PGNamedArgExpr)) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("type modifier cannot have parameter name"), - parser_errposition(arg->location))); - } - if ((yyvsp[(4) - (7)].list) != NIL) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("type modifier cannot have ORDER BY"), - parser_errposition((yylsp[(4) - (7)])))); - if ((yyvsp[(5) - (7)].boolean) != false) - ereport(ERROR, - (errcode(PG_ERRCODE_SYNTAX_ERROR), - errmsg("type modifier cannot have IGNORE NULLS"), - parser_errposition((yylsp[(5) - (7)])))); - - - t->typmods = (yyvsp[(3) - (7)].list); - t->location = (yylsp[(1) - (7)]); - (yyval.node) = makeStringConstCast((yyvsp[(7) - (7)].str), (yylsp[(7) - (7)]), t); + (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1137: -#line 3432 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); - ;} +#line 237 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} break; case 1138: -#line 3436 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntervalNode((yyvsp[(3) - (5)].node), (yylsp[(3) - (5)]), (yyvsp[(5) - (5)].list)); - ;} +#line 243 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;} break; case 1139: -#line 3440 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); - ;} +#line 245 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;} break; case 1140: -#line 3444 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); - ;} +#line 247 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;} break; case 1141: -#line 3448 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); - ;} +#line 249 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;} break; case 1142: -#line 3452 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); - ;} +#line 251 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;} break; case 1143: -#line 3456 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); - ;} +#line 256 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1144: -#line 3461 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} +#line 257 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1145: -#line 3462 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 261 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = ONCOMMIT_DROP; ;} break; case 1146: -#line 3478 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 262 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;} break; case 1147: -#line 3479 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 263 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;} break; case 1148: -#line 3480 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 264 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;} break; case 1149: -#line 3483 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 269 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1150: -#line 3484 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 273 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.boolean) = true; ;} break; case 1151: -#line 3490 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 274 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.boolean) = false; ;} break; case 1152: -#line 3491 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 280 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node)); + n->conname = (yyvsp[(2) - (3)].str); + n->location = (yylsp[(1) - (3)]); + (yyval.node) = (PGNode *) n; + ;} break; case 1153: -#line 3492 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 286 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1154: -#line 3495 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 291 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;} break; case 1155: -#line 3496 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 292 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;} break; case 1156: -#line 3497 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 293 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;} break; case 1157: -#line 3500 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 294 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;} break; case 1158: -#line 3501 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 295 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;} break; case 1159: -#line 3502 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 296 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;} break; case 1160: -#line 3505 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 297 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;} break; case 1161: -#line 3506 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} +#line 298 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;} break; case 1162: -#line 3510 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} +#line 304 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1163: -#line 3512 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} +#line 305 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1164: -#line 3516 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 309 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 1165: -#line 3517 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 315 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_DEFERRABLE; + n->location = (yylsp[(1) - (1)]); + (yyval.node) = (PGNode *)n; + ;} + break; + + case 1166: +#line 322 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE; + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *)n; + ;} break; case 1167: -#line 3528 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 329 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_DEFERRED; + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *)n; + ;} break; case 1168: -#line 3529 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 336 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_ATTR_IMMEDIATE; + n->location = (yylsp[(1) - (2)]); + (yyval.node) = (PGNode *)n; + ;} break; case 1169: -#line 3530 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 347 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1170: -#line 3531 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} +#line 348 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;} break; case 1171: -#line 3534 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 349 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;} break; case 1172: -#line 3535 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 350 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1173: -#line 9 "third_party/libpg_query/grammar/statements/delete.y" - { - PGDeleteStmt *n = makeNode(PGDeleteStmt); - n->relation = (yyvsp[(4) - (7)].range); - n->usingClause = (yyvsp[(5) - (7)].list); - n->whereClause = (yyvsp[(6) - (7)].node); - n->returningList = (yyvsp[(7) - (7)].list); - n->withClause = (yyvsp[(1) - (7)].with); - (yyval.node) = (PGNode *)n; - ;} +#line 354 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1174: -#line 22 "third_party/libpg_query/grammar/statements/delete.y" - { - (yyval.range) = (yyvsp[(1) - (1)].range); - ;} +#line 359 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 1175: -#line 26 "third_party/libpg_query/grammar/statements/delete.y" - { - PGAlias *alias = makeNode(PGAlias); - alias->aliasname = (yyvsp[(2) - (2)].str); - (yyvsp[(1) - (2)].range)->alias = alias; - (yyval.range) = (yyvsp[(1) - (2)].range); - ;} +#line 360 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} break; case 1176: -#line 33 "third_party/libpg_query/grammar/statements/delete.y" - { - PGAlias *alias = makeNode(PGAlias); - alias->aliasname = (yyvsp[(3) - (3)].str); - (yyvsp[(1) - (3)].range)->alias = alias; - (yyval.range) = (yyvsp[(1) - (3)].range); - ;} +#line 361 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = 0; ;} break; case 1177: -#line 43 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} +#line 366 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1178: -#line 44 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.node) = NULL; ;} +#line 371 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} break; case 1179: -#line 50 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 372 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_DEFERRABLE; ;} + break; + + case 1180: +#line 373 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} + break; + + case 1181: +#line 374 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} break; - case 1180: -#line 51 "third_party/libpg_query/grammar/statements/delete.y" - { (yyval.list) = NIL; ;} + case 1182: +#line 375 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_NOT_VALID; ;} break; - case 1181: -#line 8 "third_party/libpg_query/grammar/statements/create_schema.y" + case 1183: +#line 376 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = CAS_NO_INHERIT; ;} + break; + + case 1184: +#line 382 "third_party/libpg_query/grammar/statements/create.y" { - PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); - /* ...but not both */ - n->schemaname = (yyvsp[(3) - (4)].str); - n->schemaElts = (yyvsp[(4) - (4)].list); - n->onconflict = PG_ERROR_ON_CONFLICT; + PGColumnDef *n = makeNode(PGColumnDef); + n->colname = (yyvsp[(1) - (4)].str); + n->typeName = (yyvsp[(2) - (4)].typnam); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collOid = InvalidOid; + n->fdwoptions = (yyvsp[(3) - (4)].list); + SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause, + yyscanner); + n->location = (yylsp[(1) - (4)]); (yyval.node) = (PGNode *)n; ;} break; - case 1182: -#line 17 "third_party/libpg_query/grammar/statements/create_schema.y" + case 1185: +#line 405 "third_party/libpg_query/grammar/statements/create.y" { - PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); - /* ...but not here */ - n->schemaname = (yyvsp[(6) - (7)].str); - if ((yyvsp[(7) - (7)].list) != NIL) - ereport(ERROR, - (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), - parser_errposition((yylsp[(7) - (7)])))); - n->schemaElts = (yyvsp[(7) - (7)].list); - n->onconflict = PG_IGNORE_ON_CONFLICT; - (yyval.node) = (PGNode *)n; + (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; - case 1183: -#line 35 "third_party/libpg_query/grammar/statements/create_schema.y" + case 1186: +#line 409 "third_party/libpg_query/grammar/statements/create.y" { - if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ - (yyloc) = (yylsp[(2) - (2)]); - (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; - case 1184: -#line 41 "third_party/libpg_query/grammar/statements/create_schema.y" - { (yyval.list) = NIL; ;} + case 1187: +#line 415 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} + break; + + case 1188: +#line 416 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1189: -#line 10 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (6)].objtype); - n->missing_ok = true; - n->objects = (yyvsp[(5) - (6)].list); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 420 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1190: -#line 20 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (4)].objtype); - n->missing_ok = false; - n->objects = (yyvsp[(3) - (4)].list); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 424 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1191: -#line 30 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (6)].objtype); - n->missing_ok = true; - n->objects = (yyvsp[(5) - (6)].list); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 425 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1192: -#line 40 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (4)].objtype); - n->missing_ok = false; - n->objects = (yyvsp[(3) - (4)].list); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *)n; - ;} +#line 426 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1193: -#line 50 "third_party/libpg_query/grammar/statements/drop.y" +#line 431 "third_party/libpg_query/grammar/statements/create.y" { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (6)].objtype); - n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->missing_ok = false; - n->concurrent = false; - (yyval.node) = (PGNode *) n; + (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 1194: -#line 60 "third_party/libpg_query/grammar/statements/drop.y" +#line 435 "third_party/libpg_query/grammar/statements/create.y" { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = (yyvsp[(2) - (8)].objtype); - n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); - n->behavior = (yyvsp[(8) - (8)].dbehavior); - n->missing_ok = true; - n->concurrent = false; - (yyval.node) = (PGNode *) n; + (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} break; case 1195: -#line 70 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = PG_OBJECT_TYPE; - n->missing_ok = false; - n->objects = (yyvsp[(3) - (4)].list); - n->behavior = (yyvsp[(4) - (4)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *) n; - ;} +#line 442 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1196: -#line 80 "third_party/libpg_query/grammar/statements/drop.y" - { - PGDropStmt *n = makeNode(PGDropStmt); - n->removeType = PG_OBJECT_TYPE; - n->missing_ok = true; - n->objects = (yyvsp[(5) - (6)].list); - n->behavior = (yyvsp[(6) - (6)].dbehavior); - n->concurrent = false; - (yyval.node) = (PGNode *) n; - ;} +#line 443 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1197: -#line 93 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TABLE; ;} +#line 448 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1198: -#line 94 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;} +#line 449 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1199: -#line 95 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} +#line 454 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); + ;} break; case 1200: -#line 96 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} +#line 461 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1201: -#line 97 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_VIEW; ;} +#line 462 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1202: -#line 98 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_MATVIEW; ;} +#line 467 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 1203: -#line 99 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_INDEX; ;} +#line 468 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = NIL; ;} break; case 1204: -#line 100 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;} +#line 472 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} break; case 1205: -#line 101 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_COLLATION; ;} +#line 478 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); + ;} break; case 1206: -#line 102 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_CONVERSION; ;} +#line 482 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); + ;} break; case 1207: -#line 103 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;} +#line 486 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (PGNode *) (yyvsp[(5) - (5)].node), + PG_DEFELEM_UNSPEC, (yylsp[(1) - (5)])); + ;} break; case 1208: -#line 104 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSPARSER; ;} +#line 491 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[(1) - (3)])); + ;} break; case 1209: -#line 105 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;} +#line 498 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1210: -#line 106 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;} +#line 499 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1211: -#line 107 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;} +#line 503 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1212: -#line 112 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;} +#line 505 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list))); + (yyval.typnam)->pct_type = true; + (yyval.typnam)->location = (yylsp[(1) - (4)]); + ;} break; case 1213: -#line 113 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;} +#line 511 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list))); + (yyval.typnam)->pct_type = true; + (yyval.typnam)->setof = true; + (yyval.typnam)->location = (yylsp[(2) - (5)]); + ;} break; case 1214: -#line 114 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_EXTENSION; ;} +#line 522 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_CHECK; + n->location = (yylsp[(1) - (5)]); + n->raw_expr = (yyvsp[(3) - (5)].node); + n->cooked_expr = NULL; + processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", + NULL, NULL, &n->skip_validation, + &n->is_no_inherit, yyscanner); + n->initially_valid = !n->skip_validation; + (yyval.node) = (PGNode *)n; + ;} break; case 1215: -#line 115 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FDW; ;} +#line 536 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_UNIQUE; + n->location = (yylsp[(1) - (6)]); + n->keys = (yyvsp[(3) - (6)].list); + n->options = (yyvsp[(5) - (6)].list); + n->indexname = NULL; + processCASbits((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), "UNIQUE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + ;} break; case 1216: -#line 116 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;} +#line 549 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_UNIQUE; + n->location = (yylsp[(1) - (3)]); + n->keys = NIL; + n->options = NIL; + n->indexname = (yyvsp[(2) - (3)].str); + n->indexspace = NULL; + processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + ;} break; case 1217: -#line 117 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_SCHEMA; ;} +#line 564 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_PRIMARY; + n->location = (yylsp[(1) - (7)]); + n->keys = (yyvsp[(4) - (7)].list); + n->options = (yyvsp[(6) - (7)].list); + n->indexname = NULL; + processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "PRIMARY KEY", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + ;} break; case 1218: -#line 118 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;} +#line 577 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_PRIMARY; + n->location = (yylsp[(1) - (4)]); + n->keys = NIL; + n->options = NIL; + n->indexname = (yyvsp[(3) - (4)].str); + n->indexspace = NULL; + processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY", + &n->deferrable, &n->initdeferred, NULL, + NULL, yyscanner); + (yyval.node) = (PGNode *)n; + ;} break; case 1219: -#line 123 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} +#line 592 "third_party/libpg_query/grammar/statements/create.y" + { + PGConstraint *n = makeNode(PGConstraint); + n->contype = PG_CONSTR_FOREIGN; + n->location = (yylsp[(1) - (11)]); + n->pktable = (yyvsp[(7) - (11)].range); + n->fk_attrs = (yyvsp[(4) - (11)].list); + n->pk_attrs = (yyvsp[(8) - (11)].list); + n->fk_matchtype = (yyvsp[(9) - (11)].ival); + n->fk_upd_action = (char) ((yyvsp[(10) - (11)].ival) >> 8); + n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF); + processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY", + &n->deferrable, &n->initdeferred, + &n->skip_validation, NULL, + yyscanner); + n->initially_valid = !n->skip_validation; + (yyval.node) = (PGNode *)n; + ;} break; case 1220: -#line 124 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} +#line 614 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); + ;} break; case 1221: -#line 129 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.dbehavior) = PG_DROP_CASCADE; ;} +#line 618 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); + ;} break; case 1222: -#line 130 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.dbehavior) = PG_DROP_RESTRICT; ;} +#line 625 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.ival) = PG_FKCONSTR_MATCH_FULL; + ;} break; case 1223: -#line 131 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;} +#line 629 "third_party/libpg_query/grammar/statements/create.y" + { + ereport(ERROR, + (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("MATCH PARTIAL not yet implemented"), + parser_errposition((yylsp[(1) - (2)])))); + (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL; + ;} break; case 1224: -#line 136 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_POLICY; ;} +#line 637 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; + ;} break; case 1225: -#line 137 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_RULE; ;} +#line 641 "third_party/libpg_query/grammar/statements/create.y" + { + (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE; + ;} break; case 1226: -#line 138 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.objtype) = PG_OBJECT_TRIGGER; ;} +#line 649 "third_party/libpg_query/grammar/statements/create.y" + { + PGTableLikeClause *n = makeNode(PGTableLikeClause); + n->relation = (yyvsp[(2) - (3)].range); + n->options = (yyvsp[(3) - (3)].ival); + (yyval.node) = (PGNode *)n; + ;} break; case 1227: -#line 141 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} +#line 658 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} break; case 1228: -#line 142 "third_party/libpg_query/grammar/statements/drop.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} +#line 659 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} break; case 1229: -#line 8 "third_party/libpg_query/grammar/statements/create_enum.y" - { - PGCreateEnumStmt *n = makeNode(PGCreateEnumStmt); - n->typeName = (yyvsp[(3) - (8)].list); - n->vals = (yyvsp[(7) - (8)].list); - (yyval.node) = (PGNode *)n; - ;} +#line 660 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} break; case 1230: -#line 17 "third_party/libpg_query/grammar/statements/create_enum.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} +#line 661 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;} break; case 1231: -#line 18 "third_party/libpg_query/grammar/statements/create_enum.y" - { (yyval.list) = NIL; ;} +#line 663 "third_party/libpg_query/grammar/statements/create.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[(1) - (2)])))); + (yyval.ival) = PG_RELPERSISTENCE_TEMP; + ;} break; case 1232: -#line 22 "third_party/libpg_query/grammar/statements/create_enum.y" - { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} +#line 670 "third_party/libpg_query/grammar/statements/create.y" + { + ereport(PGWARNING, + (errmsg("GLOBAL is deprecated in temporary table creation"), + parser_errposition((yylsp[(1) - (2)])))); + (yyval.ival) = PG_RELPERSISTENCE_TEMP; + ;} break; case 1233: -#line 24 "third_party/libpg_query/grammar/statements/create_enum.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} +#line 676 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;} break; case 1234: -#line 8 "third_party/libpg_query/grammar/statements/execute.y" - { - PGExecuteStmt *n = makeNode(PGExecuteStmt); - n->name = (yyvsp[(2) - (3)].str); - n->params = (yyvsp[(3) - (3)].list); - (yyval.node) = (PGNode *) n; - ;} +#line 677 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 1235: -#line 16 "third_party/libpg_query/grammar/statements/execute.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - PGExecuteStmt *n = makeNode(PGExecuteStmt); - n->name = (yyvsp[(7) - (9)].str); - n->params = (yyvsp[(8) - (9)].list); - ctas->query = (PGNode *) n; - ctas->into = (yyvsp[(4) - (9)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_ERROR_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival); - (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 682 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;} break; case 1236: -#line 33 "third_party/libpg_query/grammar/statements/execute.y" - { - PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); - PGExecuteStmt *n = makeNode(PGExecuteStmt); - n->name = (yyvsp[(10) - (12)].str); - n->params = (yyvsp[(11) - (12)].list); - ctas->query = (PGNode *) n; - ctas->into = (yyvsp[(7) - (12)].into); - ctas->relkind = PG_OBJECT_TABLE; - ctas->is_select_into = false; - ctas->onconflict = PG_IGNORE_ON_CONFLICT; - /* cram additional flags into the PGIntoClause */ - (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival); - (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean)); - (yyval.node) = (PGNode *) ctas; - ;} +#line 683 "third_party/libpg_query/grammar/statements/create.y" + { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;} break; case 1237: -#line 51 "third_party/libpg_query/grammar/statements/execute.y" - { (yyval.list) = (yyvsp[(2) - (3)].list); ;} +#line 8 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = (yyvsp[(2) - (2)].str); + (yyval.node) = (PGNode *) n; + ;} break; case 1238: -#line 52 "third_party/libpg_query/grammar/statements/execute.y" - { (yyval.list) = NIL; ;} +#line 14 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = (yyvsp[(3) - (3)].str); + (yyval.node) = (PGNode *) n; + ;} + break; + + case 1239: +#line 20 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = NULL; + (yyval.node) = (PGNode *) n; + ;} + break; + + case 1240: +#line 26 "third_party/libpg_query/grammar/statements/deallocate.y" + { + PGDeallocateStmt *n = makeNode(PGDeallocateStmt); + n->name = NULL; + (yyval.node) = (PGNode *) n; + ;} break; /* Line 1267 of yacc.c. */ -#line 24523 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 24557 "third_party/libpg_query/grammar/grammar_out.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -24739,7 +24773,7 @@ YYLTYPE yylloc; } -#line 65 "third_party/libpg_query/grammar/statements/execute.y" +#line 43 "third_party/libpg_query/grammar/statements/deallocate.y" #line 1 "third_party/libpg_query/grammar/grammar.cpp"